我在 Laravel 5.6 上使用 Algolia 。我遵循有关 Laravel 文档的教程。
$searches = Application::search($query)->get();
集合{#243▼#项目:[]}
当我搜索一个应用程序时,结果返回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;
}
}
答案 0 :(得分:3)
这是因为您自定义了“侦察员钥匙”,但没有自定义“侦察员钥匙名”。
当前,Scout将尝试构建与标题匹配ID的集合。一旦定义了getScoutKeyName
方法(应该返回类似字符串title
的方法)。它应该可以工作
答案 1 :(得分:-2)
您当前拥有App\Models
的命名空间。您是否尝试过更新搜索调用以镜像此名称空间?:
$searches = App\Models\Application::search($query)->get();