2013-09-26 3 views
0

Я только что унаследовал сайт Laravel 3, который работает на пользовательской CMS. Выход CMS визуализируется через папку темы на/уровне, чтобы моя структура папок выглядит следующим образом:Laravel 3: View не существует

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

Я сделал поиск контроллера внутри «/ приложение/контроллеры», и я хочу создать представление для вывод в папку «/ theme/layouts» с другими файлами шаблонов. Когда я работал с Laravel до того, что мои взгляды находятся в «/ приложение/просмотров» и я могу указать мой взгляд с:

public $layout = 'layouts.default'; 

..which будет использовать «/ приложение/просмотров/макеты/по умолчанию. blade.php '

Как я могу заставить мой контроллер отображать представление с помощью файла' /theme/layouts/searchTemplate.php 'и передавать данные поиска с контроллера?

ответ

0

В вашей папке приложения, есть папка под названием «просмотров» Вы должны создать default.php в приложениях/просмотров/макеты/

С «layouts.defaults» это искать в воззрениях папку для папку, которая будет называться макетами.

Так полная папка «layouts.default» будет: ./application/views/layouts/default.php

Edit: ответ не относительно больше

+0

В вопросе, я спрашиваю, как я могу указать вид вне папки application/views/layouts. В частности, в/theme/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'); 

который загрузит файл «приложение/тема/макеты/default.blade.php».

Смежные вопросы