我使用 Laravel 4.1 并启动一个使用 PSR-4 标准的包(subby)。当我尝试使用以下方式渲染任何视图时:
return View::make('subby::user.login');
我收到消息:
No hint path defined for [subby]
我有很多东西是红色的,但这些通常是错字问题
问题在于 PSR-4 的使用 由于 Laravel 默认为 PSR-0,它假定包的资源(视图等)将比包服务提供者所在的位置高 2 级。前任:
src
├── config
├── lang
├── migrations
├── Ghunti
│ └── Subby
│ └── SubbyServiceProvider.php
├── routes.php
└── views
└── user
└── login.blade.php
使用 PSR-4,包服务提供者和视图将处于同一级别(并且将显示错误“未定义提示路径”:
src
├── config
├── lang
├── migrations
├── SubbyServiceProvider.php
├── routes.php
└── views
└── user
└── login.blade.php
要解决此问题,请在包服务提供者boot()
方法上,而不是:
public function boot()
{
$this->package('ghunti/subby');
}
我们需要指定资源路径(第三个参数)
public function boot()
{
//For PSR-4 compatibility we need to specify the correct path (3rd parameter)
$this->package('ghunti/subby', null, __DIR__);
}