'调用成员函数make()on null'安装Eloquence时

时间:2016-11-13 05:26:40

标签: laravel

我正在尝试在我的Laravel项目中安装Eloquence。

Eloquence Installation

我正在关注安装,并且我已完成以下操作:

  1. 需要composer.json中的包
  2. 为模型添加口才特征
  3. 将Sofa \ Eloquence \ ServiceProvider添加到config / app.php提供程序数组
  4. 问题Post::search('jarek sofa')->get();会导致

    FatalThrowableError in Builder.php line 77:
    Call to a member function make() on null
    

    Here is my code

    可能的原因:

    1. Eloquence服务提供商未正确注册
    2. 也许与作曲家有关
    3. 提前致谢

4 个答案:

答案 0 :(得分:1)

终于开始工作了!

解决方案:添加\Sofa\Eloquence\Builder::setParserFactory(new \Sofa\Eloquence\Searchable\ParserFactory);

AppServiceProvider启动方法中,如下所示:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        \Sofa\Eloquence\Builder::setParserFactory(new \Sofa\Eloquence\Searchable\ParserFactory);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

答案 1 :(得分:0)

您是否尝试在控制台中运行composer update命令?

答案 2 :(得分:0)

我有同样的问题解决了它如下 为作曲家添加了依赖项     &#34;要求&#34;:{         &#34;沙发/口才&#34;:&#34; ~5.3&#34;,//适用于Laravel 5.3。*

    // OR
    "sofa/eloquence": "~5.2", // for Laravel 5.2.*

    // OR
    "sofa/eloquence": "~5.1", // for Laravel 5.1.*

    // OR
    "sofa/eloquence": "~0.4", // for Laravel 5.0.*
    ...
},

然后在config / app中添加了该类     &#39;商&#39; =&GT; [

    /*
     * Laravel Framework Service Providers...
     */
    Illuminate\Auth\AuthServiceProvider::class,
    .....
    Illuminate\View\ViewServiceProvider::class,

    /*
     * Package Service Providers...
     */
    Laravel\Tinker\TinkerServiceProvider::class,

    /*
     * Application Service Providers...
     */
    App\Providers\AppServiceProvider::class,

    Sofa\Eloquence\ServiceProvider::class,
],

终于完成了作曲家更新

答案 3 :(得分:0)

很抱歉碰到一个老话题,但是对于在这里发现自己的任何人,我有不同的解决方案:您不能有一个名为“搜索”的范围。

我只是有一个完全相同的例外,无法弄清楚为什么,尽管我发现尝试通过call_user_func_array动态调用作用域对我来说是个问题。由于这个问题具有完全相同的作用域名称,我认为可能是这样。我可能不知道还有很多其他“保留”名称,但是一旦我将其更改为“ searchName”,一切都很好。