Php 如何从Laravel 4中的备用目录加载视图
在我的Laravel 4应用程序的根目录中,我有一个文件夹Php 如何从Laravel 4中的备用目录加载视图,php,laravel,laravel-4,namespaces,Php,Laravel,Laravel 4,Namespaces,在我的Laravel 4应用程序的根目录中,我有一个文件夹主题。在主题文件夹中,我有默认设置和azure。 如何从特定路径中的此主题/default文件夹访问视图 Route::get('{slug}', function($slug) { // make view from themes/default here }); 我的目录结构: -应用程序 --主题 ---违约 ---蔚蓝 我需要从localhost/laravel/app/themes/default文件夹加载视图。请解释
主题
。在主题
文件夹中,我有默认设置
和azure
。
如何从特定路径中的此主题/default
文件夹访问视图
Route::get('{slug}', function($slug) {
// make view from themes/default here
});
我的目录结构:
-应用程序
--主题
---违约
---蔚蓝
我需要从
localhost/laravel/app/themes/default
文件夹加载视图。请解释这一点。这在Laravel 4中是完全可能的。您所追求的实际上是视图环境。
您可以注册名称空间提示,也可以注册查找程序将级联的额外位置。看一看
您可以添加如下位置:
View::addLocation('/path/to/your/views');
不过,如果您为它们命名名称空间,可能会更容易一些,以防在将路径追加到数组时出现冲突的文件名,因此它只会级联到找到合适的匹配项为止。命名空间视图使用双冒号语法加载
View::addNamespace('theme', '/path/to/themes/views');
return View::make('theme::view.name');
您还可以为addNamespace提供一个视图路径数组,而不是一个路径。这里我不是从
公共
文件夹访问我的项目。而不是从项目根本身访问
我看到了一个关于使用视图替代路径的论坛讨论
。但我对此有点困惑。讨论的解决方案是
您需要添加一个位置
类似
View::addLocation('/path/to/your/views');
然后为主题添加命名空间
View::addNamespace('theme', '/path/to/themes/views');
然后渲染它
return View::make('theme::view.name');
/path/to/
的值是多少
我可以在不同的操作系统中使用相同的项目而不更改路径吗
是的,我们可以通过以下方法来实现:
将以下内容放入app/start/global.php
View::addLocation(app('path').'/themes/default');
View::addNamespace('theme', app('path').'/themes/default');
然后以默认方式调用view
return View::make('page');
这将从
project\u目录/app/themes/defualt
文件夹中呈现page.php
或page.blade.php
文件。我为laravel 5开发了一个主题包,其功能如下:
- 主题文件夹中的视图和资产分离
- 主题继承:扩展任何主题并创建主题层次结构
在这里试试:
\View::addLocation($directory)
工作正常,但新的正确方法是使用loadViewsFrom($path,$namespace)
(可在任何服务提供商上使用)。删除了我的答案,这确实是正确的方法。@Chirag你能用我的视图位置(主题/默认)
和路由解释一下吗?你必须用codeview::addNamespace添加主题('theme','/path/to/themes/default');
然后将其与代码一起使用返回视图::make('theme::View.name');
@lucip请检查我更新的问题并给我详细解释,而不是/path/to/
。这意味着你的路径是:app('path'))“/../themes/default”我很欣赏这篇文章,它有很多有用的信息!你能解释一下View::addLocation()和View::addNamespace()的位置吗是否应该去?我是否假设这需要创建一个服务提供者?这在路由筛选器中不起作用有什么原因吗?我在那里尝试过,但在global.php中不起作用。@pthurmond为什么要将其放入路由筛选器中?这是一个描述完美的答案