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

书比

我正在尝试将一些现有记录导入 algolia。现在使用的Laravel 5.5scout 3.0.0与algolia-PHP-SDK。当我执行时php artisan scout:import "App\Listings" -v,它抛出以下异常

 [BadMethodCallException]                                                  
  Call to undefined method Illuminate\Database\Query\Builder::searchable()  


Exception trace:
 () at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php:2457
 Illuminate\Database\Query\Builder->__call() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php:1273
 Illuminate\Database\Eloquent\Builder->__call() at /home/vagrant/Code/vendor/laravel/scout/src/Searchable.php:102
 App\Listings::makeAllSearchable() at /home/vagrant/Code/vendor/laravel/scout/src/Console/ImportCommand.php:43
 Laravel\Scout\Console\ImportCommand->handle() at n/a:n/a
 call_user_func_array() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:29
 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:87
 Illuminate\Container\BoundMethod::callBoundMethod() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:31
 Illuminate\Container\BoundMethod::call() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.php:549
 Illuminate\Container\Container->call() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.php:180
 Illuminate\Console\Command->execute() at /home/vagrant/Code/vendor/symfony/console/Command/Command.php:262
 Symfony\Component\Console\Command\Command->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.php:167
 Illuminate\Console\Command->run() at /home/vagrant/Code/vendor/symfony/console/Application.php:888
 Symfony\Component\Console\Application->doRunCommand() at /home/vagrant/Code/vendor/symfony/console/Application.php:224
 Symfony\Component\Console\Application->doRun() at /home/vagrant/Code/vendor/symfony/console/Application.php:125
 Symfony\Component\Console\Application->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Application.php:88
 Illuminate\Console\Application->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:121
 Illuminate\Foundation\Console\Kernel->handle() at /home/vagrant/Code/artisan:35
`

我已经Searchable在模型中包含了trait 以及toSearchableArray()自定义插入记录方法。

我有另一个模型叫做Store. 我可以毫无问题地将该模型导入 algolia。我已经通过这个链接但是我的两个模型都扩展了相同的 basemodel 类,所以上面的链接也没有帮助我。

任何关于前进的提示将不胜感激。

编辑代码示例

namespace App;

use App\Services\Search\Builders\ListingRecordBuilder;

use Laravel\Scout\Searchable;
.
.
.

class Listings extends BaseModel
{
    use Searchable;
.
.
.
    public function searchableAs()
    {
        return 'local_listings_new';
    }

    public function toSearchableArray()
    {
        $recordBuilder = new ListingRecordBuilder($this);

        return $recordBuilder->buildRecord();
    }
}
书比

我自己已经弄清楚了。该模型包含一个$indices数组/属性,用于表示插入记录的 algolia 索引。同时,它还包含一个searchableAs()方法,该方法也执行指定 algolia 索引的相同任务。并且该$indices数组是通过构造函数填充的,因此乍一看我无法揭示罪魁祸首。

因此,只需删除$indices数组和构造函数初始化的代码$indices对我来说确实有效。但仍然不知道为什么 Scout 抛出Call to undefined method::Searchable()异常

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

BadMethodCallException调用未定义的方法App \ User :: map()

来自分类Dev

BadMethodCallException:调用未定义的方法App \ Models \ User :: getFirstMedia()

来自分类Dev

BadMethodCallException 调用未定义的方法 App\Post::tags()

来自分类Dev

Laravel BadMethodCallException运行作曲家更新时调用未定义的方法[package]

来自分类Dev

BadMethodCallException,带有消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: toArray()”

来自分类Dev

出现消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: raise()”的BadMethodCallException

来自分类Dev

Builder.php中的BadMethodCallException:调用未定义的方法Laravel 5.0

来自分类Dev

Laravel:BadMethodCallException方法[查找]不存在

来自分类Dev

Laravel:BadMethodCallException方法[存储]不存在

来自分类Dev

BadMethodCallException 方法 [插入] 不存在。在 Laravel

来自分类Dev

自定义HTML :: macro()给了我BadMethodCallException

来自分类Dev

BadMethodCallException方法App \ Http \ Controllers \ TaskController :: destory不存在

来自分类Dev

BadMethodCallException:方法照亮\路由\路由:: withoutMiddleware不存在

来自分类Dev

{消息:“方法 addColumns 不存在。”,异常:“BadMethodCallException”,...}

来自分类Dev

BadMethodCallException 方法用户名不存在

来自分类Dev

BadMethodCallException: 方法 Illuminate\Routing\Route::get 不存在

来自分类Dev

BadMethodCallException Laravel

来自分类Dev

BadMethodCallException 解释?

来自分类Dev

错误:调用可能未定义的方法

来自分类Dev

调用未定义的方法DOMDocument :: getElementsByClassName()

来自分类Dev

Rails 4.0未定义方法“调用”

来自分类Dev

TypeError:无法调用未定义的方法“ then”

来自分类Dev

无法调用未定义的方法“ use”

来自分类Dev

调用未定义的方法(laravel 5.2)

来自分类Dev

调用未定义的方法Closure :: query()

来自分类Dev

仅调用未定义的方法

来自分类Dev

调用未定义的方法MessageBag :: getBag()

来自分类Dev

laravel 8调用未定义的方法

来自分类Dev

无法调用未定义的方法

Related 相关文章

  1. 1

    BadMethodCallException调用未定义的方法App \ User :: map()

  2. 2

    BadMethodCallException:调用未定义的方法App \ Models \ User :: getFirstMedia()

  3. 3

    BadMethodCallException 调用未定义的方法 App\Post::tags()

  4. 4

    Laravel BadMethodCallException运行作曲家更新时调用未定义的方法[package]

  5. 5

    BadMethodCallException,带有消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: toArray()”

  6. 6

    出现消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: raise()”的BadMethodCallException

  7. 7

    Builder.php中的BadMethodCallException:调用未定义的方法Laravel 5.0

  8. 8

    Laravel:BadMethodCallException方法[查找]不存在

  9. 9

    Laravel:BadMethodCallException方法[存储]不存在

  10. 10

    BadMethodCallException 方法 [插入] 不存在。在 Laravel

  11. 11

    自定义HTML :: macro()给了我BadMethodCallException

  12. 12

    BadMethodCallException方法App \ Http \ Controllers \ TaskController :: destory不存在

  13. 13

    BadMethodCallException:方法照亮\路由\路由:: withoutMiddleware不存在

  14. 14

    {消息:“方法 addColumns 不存在。”,异常:“BadMethodCallException”,...}

  15. 15

    BadMethodCallException 方法用户名不存在

  16. 16

    BadMethodCallException: 方法 Illuminate\Routing\Route::get 不存在

  17. 17

    BadMethodCallException Laravel

  18. 18

    BadMethodCallException 解释?

  19. 19

    错误:调用可能未定义的方法

  20. 20

    调用未定义的方法DOMDocument :: getElementsByClassName()

  21. 21

    Rails 4.0未定义方法“调用”

  22. 22

    TypeError:无法调用未定义的方法“ then”

  23. 23

    无法调用未定义的方法“ use”

  24. 24

    调用未定义的方法(laravel 5.2)

  25. 25

    调用未定义的方法Closure :: query()

  26. 26

    仅调用未定义的方法

  27. 27

    调用未定义的方法MessageBag :: getBag()

  28. 28

    laravel 8调用未定义的方法

  29. 29

    无法调用未定义的方法

热门标签

归档