Symfony,如何在未使用的__construct()实体中获取当前用户(FOS)?

时间:2018-08-22 08:31:26

标签: symfony doctrine entity relationships magic-methods

我有一个实体<img id="ctl01_imgCOESign" src="<%=URI.create(request.getRequestURL().toString()).resolve(request.getContextPath())%>/images/coesign.jpg"> 。该Book的标题以不同的语言存储(实体BookBook关联为BookTranslates)。

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

我试图通过在Book类的TokenStorageInterface方法中传递__construct ()来使用户进入实体,但是该原则从不调用Book方法情况。

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

1 个答案:

答案 0 :(得分:0)

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

请单独保留实体__construct

我假设您具有translations的实体。您的实体可以(应该)具有类似setCurrentLocale的方法来了解当前的语言环境。方法可以手动调用,也可以在Doctrine2 postLoad事件:

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

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