我想知道在laravel中是否有任何方法可以将变量发送到布局主控并在用户登录时将其保留在那里。我知道我该怎么做,就像这样
$this->layout->with('catalog.categories', $data);
但问题是我必须在所有控制器和所有类上发送变量。要获得变量,我需要七到八行代码。
我会举一个简单的例子。想象一下,我的网络中有一个信使中心。我想向用户显示他在顶栏上没有阅读的所有消息。它必须在布局主人身上并留在那里直到他阅读消息。每次用户更改路线时,是否必须传递此变量?
答案 0 :(得分:1)
Laravel有一种很好的方法来处理在所有视图中使用相同数据的问题。您正在寻找 View Composer 。
View::composer(array('view1','view2'), function($view)
{
$view->with('data', 'value');
});
现在数据变量绑定到view1和view2。这意味着每次加载这些视图时它们都可用。
放在哪里?只要Laravel可以识别它,您就可以将视图作曲家放在任何地方。
阅读文档:View Composer