我正在尝试将我的包中的链接链接到同一包中的视图 这是文件结构:
/report/src
/report/src/ReportServiceProvider.php
/report/src/views/test.blade.php
/report/src/SomeClass.php
在我的ReportServiceProvider.php
中,我指定了应加载视图的目录(如specified here):
public function boot()
{
$this->loadViewsFrom(__DIR__.'/views', 'reports');
}
使用“提示”报告,我应该可以使用view('reports::test')
当然我将我的ServiceProvider添加到/config/app.php
的提供者数组中,如下所示:
....
Vendor\Report\ReportServiceProvider::class,
....
我在composer中加载我的包,如下所示:
"autoload": {
....
"psr-4": {
"App\\": "app/",
"Vendor\\Report\\": "packages/vendor/report/src"
}
...
}
但是当我在view('reports::test')
中使用SomeClass.php
时,我收到以下错误:
没有为[reports]
定义提示路径所以它以某种方式无法找到报告提示.... 我在这里缺少什么?
答案 0 :(得分:0)
对我来说,我解决了错误“未为[视图]定义提示路径” 通过将以下代码段放入我的软件包的服务提供商启动功能中
$ this-> loadViewsFrom(_ DIR _。'/ views','home');
其中“ home”是我的视图文件home.blade.php,因为我是Laravel的初学者,可能是在打包的编码类型中需要提供服务提供商内部视图文件的路径
答案 1 :(得分:0)
如果您在... views / xxx中具有刀片视图,则可以通过以下方式指定它:
app('xxx')->addNamespace('mail', resource_path('views') . '/xxx');
答案 2 :(得分:0)
我认为报告是您的包裹名称
步骤1 :您必须在服务提供商内部指定软件包名称
$this->loadViewsFrom(__DIR__.'/views', 'report');
第2步:如果您要加载视图
return view('packageName::Email.testmail'); //packageName is report, the actual path to my view is package/report/src/views/Email/testmail.blade.php
答案 3 :(得分:0)
如果您使用的是infyomlabs/adminlte-templates
软件包,只需在config/app.php
中添加服务提供商,如下所示:
'providers' => [
// ...
InfyOm\AdminLTETemplates\AdminLTETemplatesServiceProvider::class,
// ...
],
答案 4 :(得分:0)
您需要在cofing / app.php中添加软件包的服务提供商