首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >覆盖Laravel 4包视图

覆盖Laravel 4包视图
EN

Stack Overflow用户
提问于 2013-07-09 18:02:38
回答 3查看 3.7K关注 0票数 5

我想创建我的自定义内容管理系统,并且我想创建一个user包,在其中我将拥有一个带有showProfile()函数的控制器。但问题是,我想很容易地编辑这个纵断面图。所以我想知道是否有一种方法可以创建级联视图。例如,如果app/views/中没有文件,那么将加载供应商/供应商/包/src/views。我希望你能明白这一点:)

编辑:

我设法让它工作了。我必须在我的ServiceProvider中为视图注册新的名称空间。我将此代码放入ServiceProvider:

代码语言:javascript
运行
复制
\View::addNamespace('cmscore',array(app_path()./'views/packages/zaalbarxx/cmscore');

其中zaalbarxx/cmscore是供应商/包,cmscore是我以后可以在控制器中使用的名称空间,如View::make('cmscore::index')。我将此代码添加到boot()方法中的$ this ->package()之前,这样应用程序/视图优先于package/views。做得很好。

EN

回答 3

Stack Overflow用户

发布于 2013-07-09 20:24:54

这已经是可能的,但是它的结构将在缺省情况下查看vendor/package-name/src/views,但如果在app/views/packages/package-name/中有等价物,则将选择该结构。

票数 4
EN

Stack Overflow用户

发布于 2013-07-09 20:36:39

如上所述,您应该已经能够加载包视图了。

但是,可以在app/config/view.php中找到的阵列中添加更多视图位置。

此外,可以在运行时使用FileViewFinder类中的addLocation()方法添加视图路径。

在服务提供商中使用该方法将如下所示:

代码语言:javascript
运行
复制
$app['view.finder']->addLocation('/path/to/views');

或应用程序中的任何位置:

代码语言:javascript
运行
复制
App::make('view.finder')->addLocation('/path/to/views');

还请注意,我最近回答了this question on cacheing view output,这可能会帮助您了解,如果您选择沿着这条路线走下去,扩展视图包的某些部分是如何工作的。

票数 2
EN

Stack Overflow用户

发布于 2014-01-15 10:01:19

你不需要对这个行为进行编程,如果你阅读了laravel代码,你会发现这是内置的……

默认情况下,软件包将首先查找in和app/views/packages/package-name/ (全部为小写!即使软件包或作者是有上限的!在windows上不会被注意到,然后在linux上你会把头撞到墙上!)

如果customer应用程序视图不存在,包视图将从包本身中加载:vendor/author/package-name/src/views

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17545419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档