首页 > 解决方案 > Symfony,如何在实体中获取当前用户(FOS),未使用的__construct()?

问题描述

我有一个实体Book。this 的标题Book以不同的语言存储(实体BookBookTranslatesas关联OneToMane)。

该实体Book在多个地方(如选择)用作表单字段。为此,我需要__toString ()Book实体设置,它将返回Book用户语言的标题。

我试图通过传入类TokenStorageInterface__construct ()方法来让用户进入实体Book,但在这种情况下,教义从不调用该__construct ()方法。

问题简述: __toString ()in entity 必须返回相关实体之一的字段。哪些具体相关的实体 - 取决于当前用户。如何正确实施?

标签: symfonydoctrineentityrelationshipsmagic-methods

解决方案


这是可能的解决方案之一:

请不要理会实体__construct

我假设你有实体translations。您的实体可以(应该)拥有setCurrentLocale了解当前语言环境的方法。方法可以手动调用或在例如Doctrine2 postLoad事件中调用:

public function setCurrentLocale(string $locale)
{
    $this->locale - $locale;
}

现在在__toString翻译时,例如title您的实体可以获取正确的翻译。


推荐阅读