【问题标题】:Laravel - Send Variable to layout master and keep it during sessionLaravel - 将变量发送到布局大师并在会话期间保留它
【发布时间】:2015-01-09 01:46:30
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php variables laravel laravel-4


    【解决方案1】:

    Laravel 有一种很好的方法来处理在所有视图中使用相同数据的问题。 View Composer 正是您所寻找的。​​p>

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

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

    在哪里放置它们?只要 Laravel 能够识别它,你就可以将视图作曲家放置在任何你想要的地方。

    阅读文档:View Composer

    【讨论】:

    • 那么,我是否必须将网页中的所有视图放在放置 view1 和 view2 的阵列上? @Alley Sharu
    • 是视图名称,但您也可以使用'*',它将使数据变量在所有视图上可用。
    • 太棒了,谢谢。那么,我可以把它放在我的 HomeController 上吗?
    • 更好的方法是在 app/composers.php 中创建一个新文件,并使用 require app_path().'/composers.php' 将其加载到 app/start/global.php 中;或者你可以把它放在你的基本控制器构造函数中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2023-03-24
    • 1970-01-01
    • 2011-04-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多