我有一个实体<img id="ctl01_imgCOESign" src="<%=URI.create(request.getRequestURL().toString()).resolve(request.getContextPath())%>/images/coesign.jpg">
。该Book
的标题以不同的语言存储(实体Book
与Book
关联为BookTranslates
)。
实体OneToMane
在多个地方(例如select)用作表单字段。为此,我需要为Book
实体设置__toString ()
,它将以用户的语言返回Book
的标题。
我试图通过在Book
类的TokenStorageInterface
方法中传递__construct ()
来使用户进入实体,但是该原则从不调用Book
方法情况。
问题简要说明:
实体中的__construct ()
必须返回相关实体之一的字段。哪些具体相关的实体-取决于当前用户。如何正确实施?
答案 0 :(得分:0)
这是可能的解决方案之一:
请单独保留实体__construct
。
我假设您具有translations
的实体。您的实体可以(应该)具有类似setCurrentLocale
的方法来了解当前的语言环境。方法可以手动调用,也可以在Doctrine2 postLoad
事件:
public function setCurrentLocale(string $locale)
{
$this->locale - $locale;
}
现在翻译__toString
时,例如title
您的实体可以获取适当的翻译。