2014-01-08 49 views
0

我已經爲我所有的視圖設置了一個總體佈局 - 一切正常。Laravel - 渲染內部佈局(從控制器或...?)

現在,我想從數據庫中獲取一些信息以放入標題,這是佈局的一部分。

此刻,我能找到的唯一出路是一樣的東西:

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

而且從裏面的佈置:

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

這工作得很好,但是......我想一定是另一種方式嗎?我不認爲從視圖/佈局中加載控制器是最好的方法嗎?

回答

2

您可以使用View作曲家來幫助您完成此:

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('*') ... 
+0

謝謝!這聽起來像是一個很好的方法來做到這一點!我希望它始終在佈局中可用...我將數組放入什麼位置? – user2840318

+0

如果你在談論作曲家陣列,我只是編輯了答案。 –

1

如果你要定義一個變量,你也可以使用共享的所有訪問量:

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

在您的視圖或佈局:

{{ $name }}