从路径Laravel 5渲染视图

时间:2015-11-08 12:34:49

标签: laravel

我正在Laravel 5中构建一个模块化系统,我系统的模块视图不在UIViewController之内。它们位于/resources/views

之下

当我使用/modules/XXXXModule/core/views时,它不起作用(逻辑上)因为在错误的地方寻找视图。

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

1 个答案:

答案 0 :(得分:2)

在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');

这样您就不会再有位置冲突了。