我想为所有应用程序视图全局注入服务 我可以通过应用服务提供商引导方法注入它吗?
答案 0 :(得分:2)
您想注入什么服务?你将如何使用它?
在所有视图中共享变量的简便方法是调用share
方法:
view()->share([
'myService' => app()->make(My\Service::class),
]);
您可以在控制器内调用它,也可以在中间件内调用,以便在许多不同的控制器上工作。
然后,在你的观点中,像这样:
@foreach ($myService->getItems() as $item)
...
@endforeach
答案 1 :(得分:2)
请按照以下步骤操作:
创建服务提供商:php artisan make:provider UserServiceProvider
转到
应用\提供商\ UserServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Auth;
class UserServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
// key can be anything
// value what you want
View::share('key', 'value');
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
}
}
在config\app.php
App\Providers\UserServiceProvider::class,
现在,您可以为每个视图访问此key
。