我正在用Laravel开发一个大型系统。这个想法是创建模块并将它们添加到自己的存储库。我想让它尽可能的通用。
问题出在laravel的(视图)名称空间。我想让包的用户能够更改视图的路径,以及他是否需要视图的名称空间(使其能够使用功能,但使用自定义视图)。
这会导致刀片指令@extends、@include和@component出现问题。
无法通用地使用视图命名空间。
必须将命名空间放在每个刀片中的第一位,如下所示:
@extends('user::layouts.web')将给出一个问题,即命名空间永远不能从配置文件中更改。
我尝试的其他方法是为命名空间使用常量和配置。
@extends(App\Providers\UserServiceProvider::MODULE_SLUG.'::layouts.web')
@extends(config('user.module.viewNamespace') . '::layouts.web')
这两种方法都可以,但我不想每次都键入配置路径或提供程序名称空间。
我认为我最好的解决方案是为每个模块编写自定义指令@extends、@includes和@components (这将动态完成)。
您将获得以下指令:@userExtends @userInclude @userComponent
我遇到的最后一个问题是我找不到一种方法来扩展现有的@extends指令。
有什么建议吗?
发布于 2019-06-20 18:14:17
也许这是可以让你走上正确路线的东西:https://laravel.com/docs/5.8/packages#views
https://stackoverflow.com/questions/56683064
复制相似问题