首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用未定义的方法说明\Foundation\Application::share()时使用面包屑包

调用未定义的方法说明\Foundation\Application::share()时使用面包屑包
EN

Stack Overflow用户
提问于 2017-05-01 18:10:59
回答 1查看 2.6K关注 0票数 3

今天,我想使用Laravel面包屑包和laravel 5.4。我在laravel 5.3中使用了它,没有任何问题,而且一切都很好。

但是,当运行应用程序时,我得到了以下错误:

代码语言:javascript
复制
FatalErrorException in ServiceProvider.php line 34:
Call to undefined method Illuminate\Foundation\Application::share()

我对此进行了搜索,结果发现,截至Laravel5.4,share已被删除。我必须用singleton代替。

但是当我这样做的时候,ServiceProvider.php中的变化是这样的:

代码语言:javascript
复制
public function register()
    {
        $this->app['breadcrumbs'] = $this->app->singleton(function($app)
        {
            $breadcrumbs = $this->app->make('DaveJamesMiller\Breadcrumbs\Manager');

            $viewPath = __DIR__ . '/../views/';

            $this->loadViewsFrom($viewPath, 'breadcrumbs');
            $this->loadViewsFrom($viewPath, 'laravel-breadcrumbs'); // Backwards-compatibility with 2.x

            $breadcrumbs->setView($app['config']['breadcrumbs.view']);

            return $breadcrumbs;
        });
    }

我又犯了一个错误。就像这样:

代码语言:javascript
复制
ErrorException in Container.php line 1057:
Illegal offset type in unset

我不知道是什么问题。有人能帮我吗?

更新:

我找到了解决方案这里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 18:39:15

第一个问题是,单例实例需要将类绑定为第一个参数,在本例中是'breadcrumbs'

第二个问题是,您不需要显式声明单个实例的数组键。所以它应该是这样的:

代码语言:javascript
复制
$this->app->singleton('breadcrumbs', function($app)

下一个问题是您使用的包是abandoned。开发人员将不再维护它。

最后一个问题是,您使用的是< 3.0.2版本。因此,将composer.json中的版本更改为3.0.2,然后安装它,那么您就不需要修改任何文件了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43724087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档