无法解析的依赖项解析[参数#0 [<required> $ name]]

 爱你116564 发布于 2023-01-10 11:46

警告:这个问题是Laravel 4的具体问题.

我之前一直在我的控制器中使用Facades.因此我知道代码正在运行.现在我需要出于各种原因引入依赖注入.

重构控制器后,我得到以下错误:

Illuminate\Container\BindingResolutionException

无法解析的依赖项解析[参数#0 [$ name]].

我无法弄清楚问题出在哪里.错误消息对我来说似乎很神秘,我不明白.(我没有看到我的__constructor参数有任何问题,因为我已经注册了绑定HelpersInterface)

以下是我的代码的重要部分:

文件:app/start/global.php



文件:composer.json

// ...

"autoload": {
    // ...
    "psr-0": {
        "Acme": "app/"
    }
},

// ...

文件:app/Acme/Controllers/BaseController.php

app = $app;
        $this->carbon = $carbon;
        $this->view = $view;
        $this->helpers = $helpers;

        $lang = $this->app->getLocale();
        $now = $this->carbon->now();

        $this->view->share('lang', $lang);
        $this->view->share('now', $now);
    }

    /**
     * Missing Method
     *
     * Abort the app and return a 404 response
     *
     * @param array $parameters
     * @return Response
     */
    public function missingMethod($parameters = array())
    {
        return $this->helpers->force404();
    }

}

文件:app/Acme/Services/Helpers.php



文件:app/Acme/Providers/HelpersServiceProvider.php

db = $this->app['db'];
    $this->defaultDbConnection = $this->db->getDefaultConnection();
}

public function register()
{
    $this->init();

    $this->app->bind('helpers', function ()
    {
        return new Helpers(
            $this->app['config'],
            $this->app['translator'],
            $this->app['view'],
            $this->app['mockably'],
            $this->app->make('log')->getMonolog(),
            $this->app['request'],
            $this->app['session.store'],
            $this->db->connection($this->defaultDbConnection),
            $this->app['redirect'],
            $this->app['Illuminate\Support\Facades\Response']
        );
    });
}

Joseph Silbe.. 20

看起来您的Acme\Services\Helpers构造函数接受一个$name参数,但不是类型提示.

Laravel的IoC并不神奇.如果您没有为每个参数提供类型提示,则IoC容器无法知道要传递的内容.

1 个回答
  • 看起来您的Acme\Services\Helpers构造函数接受一个$name参数,但不是类型提示.

    Laravel的IoC并不神奇.如果您没有为每个参数提供类型提示,则IoC容器无法知道要传递的内容.

    2023-01-10 11:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有