<small id='0xEhs'></small><noframes id='0xEhs'>

<tfoot id='0xEhs'></tfoot>
    1. <i id='0xEhs'><tr id='0xEhs'><dt id='0xEhs'><q id='0xEhs'><span id='0xEhs'><b id='0xEhs'><form id='0xEhs'><ins id='0xEhs'></ins><ul id='0xEhs'></ul><sub id='0xEhs'></sub></form><legend id='0xEhs'></legend><bdo id='0xEhs'><pre id='0xEhs'><center id='0xEhs'></center></pre></bdo></b><th id='0xEhs'></th></span></q></dt></tr></i><div id='0xEhs'><tfoot id='0xEhs'></tfoot><dl id='0xEhs'><fieldset id='0xEhs'></fieldset></dl></div>
    2. <legend id='0xEhs'><style id='0xEhs'><dir id='0xEhs'><q id='0xEhs'></q></dir></style></legend>

        <bdo id='0xEhs'></bdo><ul id='0xEhs'></ul>

      1. 无法解析的依赖解析 [Parameter #0 [ &lt;required&

        时间:2023-09-24

          <i id='c6Nqy'><tr id='c6Nqy'><dt id='c6Nqy'><q id='c6Nqy'><span id='c6Nqy'><b id='c6Nqy'><form id='c6Nqy'><ins id='c6Nqy'></ins><ul id='c6Nqy'></ul><sub id='c6Nqy'></sub></form><legend id='c6Nqy'></legend><bdo id='c6Nqy'><pre id='c6Nqy'><center id='c6Nqy'></center></pre></bdo></b><th id='c6Nqy'></th></span></q></dt></tr></i><div id='c6Nqy'><tfoot id='c6Nqy'></tfoot><dl id='c6Nqy'><fieldset id='c6Nqy'></fieldset></dl></div>
          <tfoot id='c6Nqy'></tfoot>

              <tbody id='c6Nqy'></tbody>
                  <bdo id='c6Nqy'></bdo><ul id='c6Nqy'></ul>

                  <small id='c6Nqy'></small><noframes id='c6Nqy'>

                • <legend id='c6Nqy'><style id='c6Nqy'><dir id='c6Nqy'><q id='c6Nqy'></q></dir></style></legend>

                • 本文介绍了无法解析的依赖解析 [Parameter #0 [ &lt;required&gt;$姓名]]的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  警告:这个问题是针对 Laravel 4 的.

                  Warning: This question is Laravel 4 specific.

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

                  I've been using Facades in my controllers before. Therefore I know the code is working. Now I need to introduce dependency injection for various reasons.

                  重构控制器后出现以下错误:

                  After refactoring the controller I get following error:

                  照亮容器BindingResolutionException

                  Illuminate Container BindingResolutionException

                  无法解析的依赖解析 [Parameter #0 [ $name ]].

                  Unresolvable dependency resolving [Parameter #0 [ $name ]].

                  我不知道问题出在哪里.错误消息对我来说似乎很神秘,我不明白.(我没有发现 __constructor 参数有任何问题,因为我已经为 HelpersInterface 注册了绑定)

                  I can't figure out where the problem is. The Error message seems cryptic to me and I don't understand it. (I don't see any problem with my __constructor parameters since I've registered the binding for the HelpersInterface)

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

                  Here are the important parts of my code:

                  文件:app/start/global.php

                  <?php
                   
                  // ...
                   
                  App::bind('AcmeInterfacesHelpersInterface', 'AcmeServicesHelpers');
                  

                  文件:composer.json

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

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

                  <?php namespace AcmeControllers;
                   
                  use CarbonCarbon;
                  use Controller;
                  use IlluminateFoundationApplication as App;
                  use IlluminateViewFactory as View;
                  use AcmeInterfacesHelpersInterface as Helpers;
                  use IlluminateHttpResponse;
                   
                  class BaseController extends Controller {
                   
                      /**
                       * @var IlluminateFoundationApplication
                       */
                      private $app;
                   
                      /**
                       * @var CarbonCarbon
                       */
                      private $carbon;
                   
                      /**
                       * @var IlluminateViewFactory
                       */
                      private $view;
                   
                      /**
                       * @var AcmeInterfacesHelpersInterface
                       */
                      private $helpers;
                   
                      function __construct(App $app, Carbon $carbon, View $view, Helpers $helpers)
                      {
                          $this->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

                  <?php namespace AcmeServices;
                  
                  use IlluminateConfigRepository as Config;
                  use IlluminateDatabaseConnection as DB;
                  use IlluminateHttpRequest;
                  use IlluminateRoutingRedirector as Redirect;
                  use IlluminateSessionStore as Session;
                  use IlluminateSupportFacadesResponse;
                  use IlluminateTranslationTranslator as Lang;
                  use IlluminateViewFactory as View;
                  use AcmeInterfacesMockablyInterface;
                  use MonologLogger as Log;
                  
                  class Helpers implements HelpersInterface {
                  
                  // ...
                  
                      public function __construct(
                          Config $config,
                          Lang $lang,
                          View $view,
                          MockablyInterface $mockably,
                          Log $log,
                          Request $request,
                          Session $session,
                          DB $db,
                          Redirect $redirect,
                          Response $response
                      ) {
                          // ...
                      }
                  
                  // ...
                  
                  }
                  

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

                  <?php namespace AcmeProviders;
                  
                  use IlluminateSupportServiceProvider;
                  use AcmeServicesHelpers;
                  
                  class HelpersServiceProvider extends ServiceProvider {
                  
                  private $db;
                  private $defaultDbConnection;
                  
                  protected function init()
                  {
                      $this->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['IlluminateSupportFacadesResponse']
                          );
                      });
                  }
                  

                  推荐答案

                  看起来你的 AcmeServicesHelpers 构造函数接受了一个 $name 参数,但不是类型暗示.

                  It seems your AcmeServicesHelpers constructor takes a $name parameter, but is not type hinted.

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

                  Laravel's IoC is not magic. If your don't provide a type hint for every parameter, the IoC container has no way of knowing what to pass in.

                  这篇关于无法解析的依赖解析 [Parameter #0 [ &lt;required&gt;$姓名]]的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:如何让我的 PHP IDE 理解依赖注入容器? 下一篇:如果我没有/无法使用 DI 注入服务,我如何直接从

                  相关文章

                  最新文章

                  <tfoot id='954aT'></tfoot>

                      <bdo id='954aT'></bdo><ul id='954aT'></ul>
                  1. <small id='954aT'></small><noframes id='954aT'>

                    <i id='954aT'><tr id='954aT'><dt id='954aT'><q id='954aT'><span id='954aT'><b id='954aT'><form id='954aT'><ins id='954aT'></ins><ul id='954aT'></ul><sub id='954aT'></sub></form><legend id='954aT'></legend><bdo id='954aT'><pre id='954aT'><center id='954aT'></center></pre></bdo></b><th id='954aT'></th></span></q></dt></tr></i><div id='954aT'><tfoot id='954aT'></tfoot><dl id='954aT'><fieldset id='954aT'></fieldset></dl></div>
                    <legend id='954aT'><style id='954aT'><dir id='954aT'><q id='954aT'></q></dir></style></legend>