BadMethodCallException:调用未定义的方法Illuminate \ Database \ Query \ Builder :: makeAllSearchable()

时间:2016-09-19 22:02:13

标签: php laravel laravel-5.3

我正在尝试运行命令php artisan scout:import "App\User"以根据文档(Laravel 5.3 Scout Documentation)将用户记录导入搜索驱动程序。我一直得到[BadMethodCallException]
  调用未定义的方法Illuminate \ Database \ Query \ Builder :: makeAllSearchable() 作为一个错误。为什么我收到此错误?我在我的用户控制器中包含了可搜索的特征,并将侦察类添加到我的app / config providers数组中,所以我很难理解为什么该方法不存在......

2 个答案:

答案 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()功能,导入现有用户,然后重新添加。