2013-09-26 70 views
0

我剛剛繼承了一個在自定義CMS上工作的Laravel 3網站。 CMS的輸出通過主題文件夾在/水平,使我的文件夾結構看起來像渲染:Laravel 3:查看不存在

-application 
-bundles 
-laravel 
-public 
-storage 
-theme 
    -errors 
    -layouts 
    -partials 

我做了內'/應用/控制器的一個搜索控制器,我想創造我的看法在'/ theme/layouts'文件夾中輸出其他模板文件。當我已經與Laravel工作過,我的觀點都在「/應用/視圖」,我可以指定我的觀點:

public $layout = 'layouts.default'; 

..這將使用「/應用/視圖/佈局/默認。 blade.php'

如何讓我的控制器使用我的'/theme/layouts/searchTemplate.php'文件呈現視圖並從控制器傳入搜索數據?

回答

0

在你的應用程序文件夾,有一個文件夾,名爲「若干意見」 你必須創建在應用程序/視圖/佈局/的如default.php

隨着「layouts.defaults」它在視圖搜索文件夾來一個將被稱爲佈局的文件夾。

所以對於「layouts.default」完整的文件夾爲:./application/views/layouts/default.php

編輯:答案是不是相對的了

+0

在這個問題中,我問我如何指定application/views/layouts文件夾之外的視圖。特別是在/主題/佈局 – Fraser

1

如果你真的需要把這些文件放在單獨的文件夾中,您應該使用捆綁包(請參閱docs)。

然而,快速和骯髒的解決辦法是增加在視圖裝載機事件鉤(應用/ start.php):

Event::listen(View::loader, function($bundle, $view) 
{ 
    if($bundle == 'theme') { 
     return View::file('application', $view, Bundle::path('application').'theme'); 
    } 

    return View::file($bundle, $view, Bundle::path($bundle).'views'); 
}); 

然後,您可以做類似的看法:

View::make('theme::layouts.default'); 

它將加載文件「application/theme/layouts/default.blade.php」。