laravel开发包时如何使用指令

sowork
  • 198
  1. 我写了一个针对laravel包,希望在这个包中提供一些预定义界面,然后在blade模板中使用@extend指令,发现不能正常加载包中的模板,我应该怎么做呢?

我有一个解决办法是,将这个页面发布出来,,然后在使用@extend的指令,但是如果不发布模板的话,页面找不到。

评论
阅读 881
2 个回答
✓ 已被采纳

首页你要在你的服务提供者内 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正常写就行. 因为这个路径比框架的标准路径优先级低, 会从标准路径中先找模板, 找不到才找包模板. 
撰写回答

登录后参与交流、获取后续更新提醒

宣传栏