无论控制器如何将数据传递到Laravel中的布局?

时间:2014-04-03 14:32:26

标签: php laravel laravel-4

我们说ControllerAControllerB都实现了相同的布局。现在我想将数据传递给布局,例如,无论哪个控制器实现它,都应该出现在布局中的消息。如果我只有一个控制器,我会做类似的事情:

class Controller extends \BaseController {
    public function setupLayout() {
        View::share('message', 'Hello world!');
    }

    // further methods
}

然而,当我想要多个控制器来实现布局时,我必须在每个控制器中执行此操作,这听起来并不合理。所以我想问一下,Laravel中是否存在将数据传递给布局而不是在每个控制器中复制代码的本地方式。

提前致谢!

1 个答案:

答案 0 :(得分:2)

对于这些情况,我会推荐一个视图编辑器,您可以在其中设置多个视图(或布局)或仅设置所有视图:

View::composer(['store.index', 'products.*'], function($view)
{
    $view->with('model', 'one');
    $view->with('colour', 'black');
});

你可以把它放在你的路线文件,过滤器文件中,或者像我一样,创建app/composers.php并加载

require app_path().'/composers.php';

app/start/global.php