我想在所有视图中共享一个变量,但我不确定这是否是正确的方法呢?我已经成为服务提供商:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Worktype;
class ShareWorktypesInViewsProwider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$worktypes = Worktype::all();
view()->share('worktypes', $worktypes);
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
//
}
}
但我的观点中仍然出现错误。我需要注册我的服务提供商,还是应该开箱即用?
答案 0 :(得分:1)
首先,对于这么一小段代码,我不担心创建一个全新的服务提供商。我只想将上面的内容添加到AppServiceProvider
。另外,您也可以编写内联代码:
view()->share('worktypes', Worktype::all());
至于注册提供者。您需要做的就是转到config/app.php
,找到providers
数组并添加您的提供商。
在你的罐头里你可以添加:
App\Providers\ShareWorktypesInViewsProwider::class,
它的文档: https://laravel.com/docs/5.3/providers#registering-providers
希望这有帮助!