繁体   English   中英

Symfony2在EntityRepository中使用参数

[英]Symfony2 Use parameters in EntityRepository

我想知道这是否是个好习惯。 但是对于我的项目,我需要从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始终为null。

所以我有两个问题:这是一个健康的习惯吗? 为什么结果总是为空?

您需要将doctrine服务的getRepository方法用作工厂:

xxx_repository:
    class: XXX\DatabaseBundle\Repository\CitiesRepository
    factory: ["@doctrine", "getRepository"]
    arguments: ["DatabaseBundle:City"]
    calls:
        - ["setTheParameter", ["%the_parameter%"]]

然后,您可以在控制器中作为服务访问此存储库:

$this->get('xxx_repository');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM