【问题标题】:Laravel, using packages with PSR-4 gives message "No hint path defined for"Laravel,使用带有 PSR-4 的包会给出消息“未定义提示路径”
【发布时间】:2014-04-03 20:26:49
【问题描述】:

我正在使用 Laravel 4.1 并启动一个使用 PSR-4 标准的包(subby)。 当我尝试使用以下方式渲染任何视图时:

return View::make('subby::user.login');

我收到消息:

No hint path defined for [subby]

我有很多东西是红色的,但这些通常是错字问题

【问题讨论】:

  • 使用 Laravel 5 这不再有意义

标签: php laravel laravel-4 psr-4


【解决方案1】:

问题在于 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__);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    相关资源
    最近更新 更多