我想知道这是否是一个好习惯。但对于我的项目,我需要从parameters.yml
获取参数并在EntityRepository
内使用它。
所以为此我创建了一个服务,但仍然没有执行调用。
services:
xxx_repository:
class: XXX\DatabaseBundle\Repository\CitiesRepository
calls:
- [setTheParameter, ["%the_parameter%"]]
parameters.yml
...
the_parameter: 14400
...
在CitiesRepository.php中,我正在执行以下操作:
class CitiesRepository extends EntityRepository
{
/**
* @var
*/
protected $theParameter;
public function setTheParameter($theParameter)
{
$this->theParameter = $theParameter;
}
....
}
但$ this-> theParameter始终为空。
所以我有两个问题:这是一个健康的习惯吗?为什么结果总是为空?
答案 0 :(得分:1)
您需要使用getRepository
服务的doctrine
方法作为工厂:
xxx_repository:
class: XXX\DatabaseBundle\Repository\CitiesRepository
factory: ["@doctrine", "getRepository"]
arguments: ["DatabaseBundle:City"]
calls:
- ["setTheParameter", ["%the_parameter%"]]
然后您可以在控制器中访问此存储库作为服务:
$this->get('xxx_repository');