Laravel - 将变量发送到布局母版并在会话期间保留它

Laravel - Send Variable to layout master and keep it during session

我想知道 laravel 中是否有任何方法可以将变量发送到布局主机并在用户登录时将其保存在那里。我知道我该怎么做,就像这样

$this->layout->with('catalog.categories', $data);

但问题是我必须在所有控制器上发送变量并通过所有 class。为了获得变量,我还需要七八行代码。

我会给你一个简单的例子。想象一下,我的网络中有一个信使中心。我想向用户显示他没有在顶部栏上阅读的所有消息。它必须在布局大师上并留在那里直到他阅读消息。每次用户更改路线时我都必须传递此变量吗?

Laravel 有一个很好的方法来处理在所有视图中使用相同数据的问题。 View Composer 就是您要找的。

View::composer(array('view1','view2'), function($view)
{
    $view->with('data', 'value');
});

现在数据变量绑定到view1 和view2。这意味着它们将在您每次加载这些视图时可用。

放在哪里?只要 Laravel 可以识别,您就可以将视图组合器放在任何地方。

阅读文档:View Composer