2015-01-17 54 views
1

我一直試圖在刀片佈局文件e.i中提供一組可用變量。使用另一種佈局時正在評估Laravel主佈局

  • 佈局/ master.blade.php
  • 佈局/ admin.php的

我使用的變量稱爲$ sitesettings-> sitetitle。

我輸出這個變量,像這樣:

<title>{{ $sitesettings->sitetitle }}</title> 

本變量在BaseController內填充:

class BaseController extends Controller 
{ 

    public function __construct() 
    { 
     View::share('sitesettings', SiteSetting::find(1)); 
    } 

    /** 
    * Setup the layout used by the controller. 
    * 
    * @return void 
    */ 
    protected function setupLayout() 
    { 
     if (!is_null($this->layout)) 
     { 
      $this->layout = View::make($this->layout); 
     } 
    } 

} 

問題是,當我訪問管理佈局。主人似乎正在接受評估,併發生以下錯誤。

ErrorException 
Undefined variable: sitesettings (View: /home/vagrant/Code/DanielDelCore/laravel/app/views/layouts/master.blade.php) (View: /home/vagrant/Code/DanielDelCore/laravel/app/views/layouts/master.blade.php) 

非常感謝您的幫助。

丹尼爾。

回答

1

我不確定爲什麼發生這種問題,但我建議你使用不同的方法。 View composers

View::composer(['layouts.master', 'layouts.admin'], function($view){ 
    $view->with('sitesettings', SiteSetting::find(1)); 
}); 

你可以把這個代碼app/filters.php或創建一個新的app/composers.php,包括它在app/start/global.php末有:

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

非常感謝你的幫助,偉大工程! –