如何在Zizaco / Confide路线上共享刀片模板中的对象?

时间:2014-12-24 09:46:50

标签: laravel laravel-4 blade

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

为了能够实现这一点,我在Base控制器中创建了一个构造函数,并使用了View :: share facade。 虽然这适用于应用程序中的所有路径,但它不适用于Zizaco / Confide生成的路由,我在这里获得$ books的Undefined变量错误。

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

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

1 个答案:

答案 0 :(得分:1)

您需要的是View Composers!!

您可以将视图编辑器挂钩到某个视图名称或模式(使用*通配符)。每次在渲染视图之前,视图编辑器都会运行。

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

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