【问题标题】:Laravel 5.6 & Algolia search return empty resultLaravel 5.6 和 Algolia 搜索返回空结果
【发布时间】:2018-09-04 15:46:59
【问题描述】:

我在 Laravel 5.6 上使用 Algolia。我按照 Laravel 文档上的教程进行操作。

$searches = Application::search($query)->get();

集合 {#243 ▼ #items: [] }

当我搜索应用程序时,结果返回给我 0 项。

我输入这个命令:

php artisan scout:import "App\Models\Application"

在 Algolia 上发送项目,并且它们出现在 Algolia 仪表板上,我可以看到它。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;

class Application extends Model
{
    use Searchable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'user_id',
        'title',
        'slug',
        'short_description',
        'long_description',
        'state',
    ];

    /**
     * @return string
     */
    public function searchableAs()
    {
        return 'applications';
    }

    /**
     * @return mixed
     */
    public function getScoutKey()
    {
        return $this->title;
    }
}

【问题讨论】:

    标签: php laravel laravel-5.6 algolia


    【解决方案1】:

    这是因为您自定义了 Scout Key,但没有自定义 Scout Key 名称。

    目前,Scout 将尝试构建一个将 ID 与标题匹配的集合。一旦你定义了getScoutKeyName 方法(它应该返回类似字符串title)。它应该工作?

    【讨论】:

      【解决方案2】:

      您当前的命名空间为App\Models。您是否尝试过更新您的搜索调用以镜像此命名空间?:

      $searches = App\Models\Application::search($query)->get();
      

      【讨论】:

      • 我也有同样的问题...如果我使用raw()方法,我有数据,但它们不是由模型键入的...
      • @pirmax 你解决问题了吗?
      猜你喜欢
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      • 1970-01-01
      • 2014-11-28
      • 2016-05-02
      相关资源
      最近更新 更多