2014-04-03 55 views
0

比方說,我得到了ControllerAControllerB這都實現了相同的佈局。現在我想將數據傳遞給佈局,例如,無論哪個控制器實現它,應該在佈局中顯示的消息。如果我只有1個控制器,我會做這樣的事情:如何將數據傳遞給Laravel中的佈局而不管控制器?

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

    // further methods 
} 

然而,當我想多個控制器來實現一個佈局,我必須這樣做,在每一個控制器,它不健全合理的。所以我想問一下,在Laravel中是否有本地方式將數據傳遞給佈局,而不是在每個控制器中複製代碼。

在此先感謝!

+0

在構造函數創建YourBaseController與View ::份額,然後用你的控制器,應使用意見 –

回答

2

對於這些情況,我建議將View Composer,在那裏你可以將它們設置爲多個視圖(或佈局),或者只是他們都:

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

你可以把你的路線文件,過濾器文件或一樣,我加入

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

要將app/start/global.php創建app/composers.php和負載。

+0

這個數據這就是我一直在尋找擴展。謝謝! – nakajuice

相關問題