自动加载视图作曲家文件

Auto load view composer file

我刚刚在 View Composers 上观看了 Laracast 视频。

一切正常,但我对视频的最后一部分一无所知。

我的 routes.php 中有以下代码:

View::composer('layouts.partials.sidebar', 'App\Composers\SidebarComposer');

在视频的最后解释说这可以从路由文件中删除。在 starts/global.php 文件中,他添加了以下代码:

require app_path() . 'composers.php';

我没有 starts/global.php 文件,那么最好的方法是什么?

您需要为作曲家创建一个服务提供者,并将您的视图作曲家放在 App\Http\ViewComposers 中(您可以随意将它放在其他任何地方)。不要忘记将此服务提供商注册到 config/app.php 中的 providers 数组。

请参阅下面的示例:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * Register bindings in the container.
     *
     * @return void
     */
    public function boot()
    {
        // Using class based composers...
        view()->composer(
            'profile', 'App\Http\ViewComposers\ProfileComposer'
        );

        // Using Closure based composers...
        view()->composer('dashboard', function ($view) {
            //
        });
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

有关详细信息,请参阅官方 Laravel 5 文档 -> View Composers