从laravel中间件发送数据到视图

时间:2016-07-14 18:21:54

标签: php laravel

在我使用Laravel构建的Web应用程序中,我尝试根据数据库中的数据生成菜单。

我能够创建中间件,并且已经将它添加到kernel.php中,以便在每次请求时执行它。在middware中,我可以从模型中获取数据。

现在,我必须采取的下一步是将数据发送到视图。我已经用Google搜索了它,但我没有找到任何示例如何做到这一点。我用中间件走错了路吗?还是有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以使用视图编辑器轻松完成此操作,尽管它可能不是最有效的方法。我之前在类似的情况下使用它没有问题。

生成菜单后,只需将其放入中间件即可。

view()->composer('*', function ($view) use ($menu) {
    $view->with('menu', $menu);
});

答案 1 :(得分:1)

你可能想要这样的东西

wwwroot

答案 2 :(得分:1)

我不久前遇到过类似的问题,我需要在每个页面的导航栏中显示一些类别。所以我创建了一个新的提供者:

php artisan make:provider ComposerProvider

这是里面的代码:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ComposerServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot()
    {
        view()->composer('*', function($view)
        {
            $view->with('categories', \App\Category::all());
        });
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

然后你可以拨打'类别'变量在每个页面中,或在我的情况下的菜单中。就是这样。希望它有所帮助!