Laravel - 渲染内部布局(来自控制器或......?)

时间:2014-01-08 14:35:29

标签: php laravel laravel-4

我为所有观点设置了一般布局 - 一切都很好。

现在,我想从数据库中获取一些信息以放入标题中,这是布局的一部分。

目前,我能找到的唯一方法就是:

// OneControler.php
static public function hello()
{
$data['hey'] = 'heeey';
return View::make('layouts.partial.nav', $data);    
}

从布局内部:

// master.blade.php
...
{{ OneController::hello() }}
...

这很好但是......我认为必须有另一种方法吗?我不认为从视图/布局中加载控制器是最好的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用View Composers来帮助您:

View::composer(array('your.first.view','your.second.view'), function($view)
{
    $view->with('count', User::count());
});

然后在您的视图中your.first.viewyour.second.view,甚至您的布局,您可以:

{{ $count }}

在视图数组中,您输入视图的名称:

View::composer(array('layouts.partial.nav') ...

或者您可以将其设置为所有视图:

View::composer(array('*') ...

答案 1 :(得分:1)

如果要为所有视图定义变量,也可以使用share:

View::share('name', 'Steve');

在您的视图或布局中:

{{ $name }}