【发布时间】:2013-07-20 23:28:25
【问题描述】:
我正在尝试使用内置的 laravel 的 Ioc 容器在 Page 模型中注入一个 PageManager 类,我有点迷路了。
我想要达到的目标是这样的:
class Pages extends Eloquent {
public function __construct(PagesManagerInterface $manager, array $attributes = array())
{
parent::__construct($attributes);
$this->manager = new $manager;
}
public function saveToDisk()
{
$this->manager->writeToFile();
}
但我收到此错误:
ErrorException:传递给 Pages::__construct() 的参数 1 必须是 PagesManagerInterface 的实例,没有给出。
我尝试在 app/start/global.php 中添加这个:
App::bind('Pages',function(){
return new Pages(new PagesManager);
});
但似乎被框架忽略了,我也不知道如何将 $attribute 数组插入到这个声明中。
我有点迷茫,所以感谢任何帮助!
【问题讨论】:
-
尝试使用
Facade::swap()方法。 -
您能详细说明一下吗?谢谢。
标签: dependency-injection laravel inversion-of-control ioc-container