Laravel服务提供商,用于在所有视图中共享变量

时间:2016-10-27 11:48:26

标签: laravel-5.3

我想在所有视图中共享一个变量,但我不确定这是否是正确的方法呢?我已经成为服务提供商:

<?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()
    {
        //
    }
}

但我的观点中仍然出现错误。我需要注册我的服务提供商,还是应该开箱即用?

1 个答案:

答案 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

希望这有帮助!