我需要在存储库中注入参数,我尝试添加对服务仓库的调用,但是当我从我的仓库中调用某个函数时,我的调用函数不会调用
app.repository.file:
class: "%app.repository.file.class%"
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- "%app.entity.file.class%"
calls:
- [setParam,['%md5_suffix%']]
setParam没有调用
private $param;
public function setParam($param)
{
$this->param = $param;
}
param有null
我尝试使用JMSDiExtraBundle
/**
* @DI\InjectParams({
* "param" = @DI\Inject("%md5_suffix%"),
* })
*/
public function setParam($param)
{
$this->param = $param;
}
但是在属性%md5_suffix%
中有字符串,而不是来自parameters.yml
:)的属性
如何从repo中的参数yml注入参数?
答案 0 :(得分:0)
Factory_service在2.8中已弃用。相反,尝试使用类似的东西:
app.repository.file:
class: Doctrine\ORM\EntityRepository
factory: ['@doctrine.orm.entity_manager', getRepository]
arguments:
- "%app.entity.file.class%"
calls:
- [setParam,['%md5_suffix%']]
答案 1 :(得分:-1)
我创建了另一项服务
economy.param_helper:
class: "%economy.param_helper.class%"
arguments:
- "%md5_suffix%"
并在此回购中注入此服务
/**
* @var ParamHelper
*/
private $param;
/**
* @DI\InjectParams({
* "param" = @DI\Inject("economy.param_helper"),
* })
*/
public function setParam(ParamHelper $param)
{
$this->param = $param;
}
并致电$md5Suffix = $this->param->getMd5Suffix();
但我不确定这是正确的方式