2013-12-12 43 views
0

我可能會以錯誤的方式處理這個問題,但在我的基礎控制器中,我已經在構造中定義了我的資源容器「標題」,例如:Laravel 3:錯誤響應沒有擴展基礎控制器(其中定義了資產)

Asset::container('header')->add('main-css', 'css/style.css'); 
// etc 

由於所有我的其它控制器延伸的基本控制器此工作正常和我的資產產生被放置在當我打電話

{{Asset::container('header')->styles()}} 

以我master.blade.php頭容器

但是,當404被觸發時

Event::listen('404', function() 
{ 
    return Response::error('404'); 
}); 

我的樣式未加載。我認爲這是因爲laravel錯誤控制器沒有擴展基本控制器。

任何簡單的方法,而不需要重新聲明我的資產或東西。我假設在刀片佈局中聲明我的所有資產並不是最好的方法。

回答

0

啊哈!

我剛剛做到了。

的答案是使用View Composers(的Laravel概念,我從來沒有得到適當的調查的..)

所以在我的routes.php文件(臨時安置 - 也許我應該把自己的自動加載文件作曲家)我剛剛添加了以下內容。

View::composer(array('layout.master'), function($view) 
{ 
    Asset::container('header')->add('bootstrap-css', 'bundles/bootstrapper/css/bootstrap.min.css'); 
    Asset::container('header')->add('main-css', 'css/style.css'); 

    Asset::container('footer')->add('bootbox', 'js/vendor/bootbox.min.js'); 

}); 

考慮到每一個前端的文件我用/views/layout/master.blade.php那麼我就知道我可以通過傳遞「layout.master」查看::作曲家運用資產給它。

Et瞧 - 現在我的404視圖也加載正確的資產。