我写了一个针对laravel包,希望在这个包中提供一些预定义界面,然后在blade模板中使用@extend指令,发现不能正常加载包中的模板,我应该怎么做呢? 我有一个解决办法是,将这个页面发布出来,,然后在使用@extend的指令,但是如果不发布模板的话,页面找不到。
首页你要在你的服务提供者内 TestProvider 声明模版路径及别名 $this->loadViewsFrom (__DIR__ . '/../resources/views', 'MyAdmin(别名)'); 随后在使用view函数时 你预定义的明别::模版名称 就可以实现了
提供一个ServiceProvider, 在里面这么写, 如下: // 假设你给自己的laravel模板空间命名为 myns $namespace = 'myns'; $hints = '你的模板的目录'; app('view')->addNamespace($namespace, $hints); // 在blade里面这么写 view('myns::xxx'); include('myns::yyy'); extens('myns::zzz'); 如果不使用namespace, 那么如下 app('view')->addLocation('你的模板的路径'); // blade正常写就行. 因为这个路径比框架的标准路径优先级低, 会从标准路径中先找模板, 找不到才找包模板.
首页你要在你的服务提供者内 TestProvider 声明模版路径及别名
随后在使用view函数时
就可以实现了
提供一个ServiceProvider, 在里面这么写, 如下:
如果不使用namespace, 那么如下