我刚刚继承了一个适用于自定义CMS的Laravel 3网站。 CMS输出通过/ level处的主题文件夹呈现,因此我的文件夹结构如下所示:
-application
-bundles
-laravel
-public
-storage
-theme
-errors
-layouts
-partials
我在' / application / controllers'中创建了一个搜索控制器。我想在' / theme / layouts'中为输出创建我的视图文件夹与其他模板文件。当我之前与Laravel合作过时,我的观点都在' / application / views'我可以用以下方式指定我的观点:
public $layout = 'layouts.default';
..将使用' /application/views/layouts/default.blade.php'
如何让我的控制器使用我的' /theme/layouts/searchTemplate.php'呈现视图;文件并从控制器传入搜索数据?
答案 0 :(得分:1)
如果你真的需要将这些文件放在一个单独的文件夹中,你应该使用bundle(参见docs)。
然而,一个快速而肮脏的解决方案是在视图加载器事件(application / 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 ”。
答案 1 :(得分:0)
在您的应用程序文件夹中,有一个名为' views'的文件夹。 您必须在applications / views / layouts /
中创建default.php使用' layouts.defaults'它在views文件夹中搜索一个名为layouts的文件夹。
所以' layouts.default'的完整文件夹将是:./ application / views / lalay / default.php
编辑:答案不再相对