在每个请求上将数据传递到 Laravel 5.2 中的布局


Passing data to layout in Laravel 5.2 on each request

嗨,我

正在使用 laravel 5.2 构建一个应用程序,我有一个消息传递系统,我想在我的布局中填充一些部分,例如"当前未读消息计数"和最近 5 条消息的摘要。

我要做的方法是调用一个方法来获取我需要的数据,然后将数据传递给布局,然后呈现视图。

我知道这可以通过视图作曲家来完成,但我不知道如何完成。任何投入都将得到极大的赞赏。提前致谢

是的,您可以使用视图编辑器执行此操作

假设您有一个my_menu.blade.php视图文件,并且想要向其传递一些数据。在服务提供商的boot方法中,执行以下操作:

//every time the my_menu view is rendered, this callback will be called
View::composer('my_menu', function( $view )
{
    $data = //get your data here
    //pass the data to the view
    $view->with( 'data', $data );
} );

现在,每次呈现my_menu视图时,Laravel都会调用您的回调,获取数据并将数据传递给视图。因此,在您的视图文件中,您可以使用$data访问数据