【问题标题】:Laravel 5.1 - Service Provider unresolvable dependencyLaravel 5.1 - 服务提供者无法解决的依赖
【发布时间】:2016-03-21 09:58:52
【问题描述】:

我想使用来自alaouy 的 Youtube 包装服务提供商,但我收到以下错误。

Alaouy\Youtube\Youtube 类中无法解析的依赖解析 [Parameter #0 [ $key ]]

这是我在控制器中的代码:

use Alaouy\Youtube\Youtube;

class UrlController extends Controller
{
    public function search(Request $request, Youtube $yt)
    {
        $yt->parseVIdFromURL($request->input('url'));
    }

    ....

在 register 方法中你可以看到他如何访问配置文件,该代码出现在他的 API 中

$this->publishes(array(__DIR__ . '/../../config/youtube.php' => config_path('youtube.php')));
    $this->app->bindShared('youtube', function () {
        return $this->app->make('Alaouy\Youtube\Youtube', [config('youtube.KEY')]);
    });

"php artisan vendor:publish" - 已执行

【问题讨论】:

  • Youtube 类在构造函数中有一个强制参数。似乎您的对象被尝试在没有该参数的情况下实例化..
  • 是的,它需要 API 密钥,但我将 API 密钥放在提供的配置文件中,我是这样制作的:php artisan vendor:publish
  • 即使您执行了该命令,您也必须编辑 /app/config/youtube.php 文件并在其中添加您的 api 密钥
  • 我对 config/youtube.php 进行了更改,不是在供应商文件夹中,但 config/youtube.php 会覆盖
  • 不要更改供应商配置文件。下次更新软件包时,它们将被覆盖。当您使用 php artisan vendor:publish 发布配置时,会将配置放入 您的 配置文件夹 - 这是您进行更改的地方。

标签: php laravel-5 youtube-api laravel-5.1 youtube-data-api


【解决方案1】:

解决方案是使用 Facades。

use Youtube;

public function search(Request $request)
{
    Youtube::parseVidFromURL($request->input('url'));
}

感谢论坛成员:Laracast

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    相关资源
    最近更新 更多