从路径Laravel 5渲染视图

Borja Jose Celda冈萨雷斯

我正在Laravel 5中构建一个模块化系统,而我的系统的模块视图不在的范围内/resources/views他们在/modules/XXXXModule/core/views

当我使用时,return view('viewFileHere')它在逻辑上不起作用,因为在错误的位置寻找视图。

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

博格丹

有两种方法可以在Laravel中为视图添加新路径:

1.通过使用addLocation

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

上面的方法可以工作,但是如果您list.blade.php在每个文件夹中都有一个视图,请使用以下方法:

return view('list');

它将始终返回在第一个注册的位置中找到的那个,在这种情况下将是for 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');

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章