【发布时间】:2021-02-23 18:04:30
【问题描述】:
我的AppServiceProvider.php 中有一个单例设置,例如:
public function boot()
{
$this->app->singleton(Breadcrumbs::class, function($app){
return new Breadcrumbs();
});
View::composer(['partials.*'], function($view){
$view->with('breadcrumbs', new Breadcrumbs());
});
}
Breadcrumbs 只是一个简单的类,它管理一系列面包屑,我希望整个应用程序中只有一个对象(因此每次调用 new Breadcrumbs() 时,您实际上得到的是现有对象,而不是新对象。(我认为这就是单身人士的用途?)
但是现在已经把这个添加到JetStreamServiceProvider.php
public function boot()
{
$this->configurePermissions();
Fortify::loginView(function (){
$breadcrumbs = new Breadcrumbs();
$breadcrumbs->add('login','login.php');
return view('auth.login');
});
}
但是,它不是使用与 AppServiceProvider 中创建的对象相同的对象,而是创建一个新对象(因此 AppServiceProvider 中的面包屑对象和 JetStreamServiceProvider 中的面包屑对象是两个不同的对象,包含不同的数据集)。 .这不好。
我做错了什么?
【问题讨论】:
标签: php laravel laravel-8 jetstream