今天,我想使用Laravel面包屑包和laravel 5.4。我在laravel 5.3中使用了它,没有任何问题,而且一切都很好。
但是,当运行应用程序时,我得到了以下错误:
FatalErrorException in ServiceProvider.php line 34:
Call to undefined method Illuminate\Foundation\Application::share()我对此进行了搜索,结果发现,截至Laravel5.4,share已被删除。我必须用singleton代替。
但是当我这样做的时候,ServiceProvider.php中的变化是这样的:
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;
});
}我又犯了一个错误。就像这样:
ErrorException in Container.php line 1057:
Illegal offset type in unset我不知道是什么问题。有人能帮我吗?
更新:
我找到了解决方案这里。
发布于 2017-05-01 18:39:15
第一个问题是,单例实例需要将类绑定为第一个参数,在本例中是'breadcrumbs'。
第二个问题是,您不需要显式声明单个实例的数组键。所以它应该是这样的:
$this->app->singleton('breadcrumbs', function($app)下一个问题是您使用的包是abandoned。开发人员将不再维护它。
最后一个问题是,您使用的是< 3.0.2版本。因此,将composer.json中的版本更改为3.0.2,然后安装它,那么您就不需要修改任何文件了。
https://stackoverflow.com/questions/43724087
复制相似问题