所以我有一个控制器,我添加了它与 Pimple 的依赖项,如下所示:
$this->container['Account'] = $this->container->factory(function ($c) {
return new Account(
$c['Menu_builder']
);
});
当我转到此控制器中任何操作的 URL 时,它只会显示:
Message: Argument 1 passed to Account::__construct() must be an instance of Menu_builder, none given, called in website/system/core/CodeIgniter.php on line 482 and defined Filename: controllers/Account.php Line Number: 13
要加载任何具有依赖关系的类,我通常会说:
$account = $this->container['Account'];
但我不确定在框架控制器的情况下将这个调用放在哪里。
控制器如下所示:
class Account extends MY_Controller
{
private $menu_builder;
public function __construct(Menu_builder $menu_builder){
$this->menu_builder = $menu_builder;
}
// ...
}
问题:我在这里做错了什么?以上适用于返回除控制器以外的任何类。