【问题标题】:Algolia save only strings using Laravel 5.4Algolia 使用 Laravel 5.4 仅保存字符串
【发布时间】:2017-11-10 19:30:32
【问题描述】:

我使用 Laravel 5.4 并将 algolia 与我的项目集成,但我在列的数据类型方面存在一些问题。

如果我从本地主机运行命令,状态列(和其他列)在 algolia 数据库中显示为整数,但如果我从生产环境运行相同的工匠命令,状态列现在是字符串,我不能在我的代码中使用->where('status', 1),因为 algolia 只能将整数用于 where 子句。

我的数据库有问题吗?但是我的本地主机是同一个数据库,相同的mysql版本......

【问题讨论】:

    标签: laravel laravel-5.4 algolia


    【解决方案1】:

    我不知道这可能是什么原因,但我想我知道一个很好的解决方法。

    我还要说 Algolia 可以将字符串作为 where 子句,但这是 Laravel Scout 的有意限制。

    您可以在模型中使用 toSearchableArray 来自定义发送到 Algolia 的数组。我会用它来转换数据。 https://laravel.com/docs/5.5/scout#configuring-searchable-data

    你应该有这样的东西:

    public function toSearchableArray()
    {
        $data = $this->toArray();
    
        $data['attribute'] = (int) $data['attribute'];
    
        return $data;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 2017-11-07
      • 2018-02-20
      • 1970-01-01
      相关资源
      最近更新 更多