在Laravel 5.2中每次请求将数据传递到布局

5

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

我打算调用一个方法来获取所需的数据,然后将数据传递给布局并渲染视图。

我知道可以使用视图组件来完成这个功能,但我不知道如何做。非常感谢您的任何帮助。提前致谢。


1个回答

7

是的,您可以通过视图合成器(view composer)实现。

假设您有一个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访问数据。

2
谢谢你的回答。你说的方法是有效的,我实际上在Laracasts上找到了一个视频,非常好地解释了这个问题,并展示了如何使用ServiceProviders使代码更加简洁 :) https://laracasts.com/series/laravel-5-fundamentals/episodes/25 - matpulis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接