如何在symfony中从配置文件中设置targetEntity?

时间:2016-02-02 15:01:57

标签: orm doctrine-orm symfony

我正在构建捆绑包,我想在另一个应用程序中使用它。我创建了具有用户字段的实体,我想要使用必须实现AdvancedUserInterface的用户类的make config选项。 在实体中我使用此映射:

/**
 * @ORM\ManyToOne(targetEntity="Symfony\Component\Security\Core\User\AdvancedUserInterface")
 */
private $author;

我知道我可以通过添加到config.yml

来替换此接口
//config.yml

doctrine:
    [...]
    orm:
        [...]
        resolve_target_entities:
            Symfony\Component\Security\Core\User\AdvancedUserInterface: Draconicka\FosUserBundle\Entity\FosUser

但我认为这不是一个好的解决方案。我想把这个类放在config中的bundle部分。对于考试

//config.yml
[...]
nattle_demo:
    user_class: Draconicka\FosUserBundle\Entity\FosUser

这可能吗?或者更好的解决方案是覆盖此捆绑包并在每个应用程序中添加此字段?

1 个答案:

答案 0 :(得分:0)

我总是使用resolve taget实体 - 它简单地填充你的bundle中的targetEntity attr。 有时我在config中使用设置类,如果我需要在其他服务中添加类全名(带命名空间)。 例如,您需要在authListener中检查用户数据。 AuthListener有方法supportClass($ class){return $ class ==' \ Your \ Configured \ Class' }