2015-11-08 78 views
2

我在Laravel 5中构建模块化系统,我的系统的模块视图位于/resources/views之外。他们在/modules/XXXXModule/core/views之下。从路径Laravel 5呈现视图

当我使用return view('viewFileHere')它不起作用(逻辑),因为正在寻找错误的地方的意见。

如何告诉Laravel 5在其他地方(路径)搜索视图?

回答

1

有在Laravel增加对新意见路径的方法有两种:

1.使用addLocation

view()->addLocation('/modules/XXXXModule/core/views'); 
view()->addLocation('/modules/YYYYModule/core/views'); 

上述工作,但如果你有一个list.blade.php视图中的每一个如果你使用这个文件夹:

return view('list'); 

它会一直返回它在本地找到的那个首先注册,在这种情况下,将为XXXXModule。所以,虽然它的工作,它有其模块化结构的缺点。

2.通过使用addNamespace

view()->addNamespace('XXXXModule', '/modules/XXXXModule/core/views'); 
view()->addNamespace('YYYYModule', '/modules/YYYYModule/core/views'); 

以上会注册在不同的命名空间的每个路径,所以如果你有两个名称相同的观点文件(即list.blade.php),但第二部分您可以访问它们的不同模块如下:

// for XXXXModule 
return view('XXXXModule::list'); 

// for YYYYModule 
return view('YYYYModule::list'); 

这样你就没有更多的位置冲突。

+0

太好了!谢谢! –