我是symfony2的新手,并且很难将服务注入我的自定义类。以下是场景: 在Bundle中,我创建了一个文件夹和一个类。在该捆绑包中,services.yml具有以下代码
parameters:
rc2ab_model.class: rc2ab\ShareBundle\Model\Rc2abModel
services:
rc2ab_model:
class: "%rc2ab_model.class%"
arguments: ["@doctrine.orm.entity_manager"]
这是自定义类
的构造函数public function __construct($em) {
}
之后我在DefaultController中创建了Rc2abModel类的对象
$myObj = new Rc2abModel();
错误来了:
Warning: Missing argument 1 for rc2ab\ShareBundle\Model\Rc2abModel::__construct(), called in Default Controller....
我无法解决这个问题,我已经阅读了他们网站上的文档,所以请不要给我文档链接,我在这里尝试了其他解决方案,但似乎没有什么对我有用。请建议。
答案 0 :(得分:2)
在控制器中调用服务,您不必自己初始化它:
$myObj = $this->get('rc2ab_model');
它将使用服务注册^^
中的给定参数生成对象立即尝试:
echo get_class($this->get('rc2ab_model')); exit;
// Display :
rc2ab\ShareBundle\Model\Rc2abModel