【问题标题】:How to share object in blade template across Zizaco/Confide routes?如何跨 Zizaco/Confide 路由共享刀片模板中的对象?
【发布时间】:2015-02-22 10:48:17
【问题描述】:

我正在尝试跨 Laravel 应用程序共享一个对象。我需要这个,因为我想创建一个刀片模板,该模板将被包含在任何地方,并且还将执行一些逻辑/数据操作(一种动态菜单)。

为了能够做到这一点,我在 Base 控制器中创建了一个构造函数并使用了 View::share 外观。 虽然这适用于应用程序中的所有路由,但它不适用于 Zizaco/Confide 生成的路由,在该路由中我得到 $books 的未定义变量错误。

这是基本控制器中的构造函数:

public function __construct()
{
    $books = Book::all();
    View::share('books', $books);
    return View::make('adminMenu')->with('books', $books);
}

【问题讨论】:

    标签: laravel laravel-4 blade


    【解决方案1】:

    你需要的是View Composers!!

    您可以将视图编辑器与特定视图名称或模式挂钩(使用* 通配符)。每次在该视图被渲染之前,视图合成器都会运行。

    你可以把它放在任何地方。最优雅的是自定义app/composers.php,然后在app/start/global.php底部需要它

    View::composer('adminMenu', function($view){
        $books = Book::all();
        $view->with('books', $books);
    }
    

    【讨论】:

    • 工作就像一个魅力。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 2018-07-28
    • 2015-07-12
    • 2017-03-23
    • 1970-01-01
    • 2014-04-21
    相关资源
    最近更新 更多