我正在尝试运行命令php artisan scout:import "App\User"
以根据文档(Laravel 5.3 Scout Documentation)将用户记录导入搜索驱动程序。我一直得到[BadMethodCallException]
调用未定义的方法Illuminate \ Database \ Query \ Builder :: makeAllSearchable()
作为一个错误。为什么我收到此错误?我在我的用户控制器中包含了可搜索的特征,并将侦察类添加到我的app / config providers数组中,所以我很难理解为什么该方法不存在......
答案 0 :(得分:2)
您不应将特征添加到控制器,而是添加到模型。所以在你的情况下到App \ User.php
<?php
namespace App;
use Laravel\Scout\Searchable;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use Searchable;
}
答案 1 :(得分:2)
就像Jakub所说,你必须将Searchable特征添加到你的用户模型,而不是控制器。
如果您在模型上使用toSearchableArray()
,请不要忘记在数组中加入id
列,否则无法使用。
您还可以评论toSearchableArray()
功能,导入现有用户,然后重新添加。