symfony - Symfony,如何在实体中获取当前用户(FOS),未使用的__construct()?
问题描述
我有一个实体Book
。this 的标题Book
以不同的语言存储(实体Book
与BookTranslates
as关联OneToMane
)。
该实体Book
在多个地方(如选择)用作表单字段。为此,我需要__toString ()
为Book
实体设置,它将返回Book
用户语言的标题。
我试图通过传入类TokenStorageInterface
的__construct ()
方法来让用户进入实体Book
,但在这种情况下,教义从不调用该__construct ()
方法。
问题简述:
__toString ()
in entity 必须返回相关实体之一的字段。哪些具体相关的实体 - 取决于当前用户。如何正确实施?
解决方案
这是可能的解决方案之一:
请不要理会实体__construct
。
我假设你有实体translations
。您的实体可以(应该)拥有setCurrentLocale
了解当前语言环境的方法。方法可以手动调用或在例如Doctrine2 postLoad
事件中调用:
public function setCurrentLocale(string $locale)
{
$this->locale - $locale;
}
现在在__toString
翻译时,例如title
您的实体可以获取正确的翻译。
推荐阅读
- google-apps-script - inventory using google sheet
- c++ - 如何将字符串类型转换为ostringstream
- python - 基于 id 列中的值应用于数据框的自定义函数
- android - 使用 Gluonhq Charm Down,如何将其 InAppBillingService 与 Google Play 服务器集成然后测试?
- python - Python REST API 在 Docker 容器中无法正常工作
- javascript - 附加元素的问题遵循不同元素的特征
- python - 如何求解使用向量的非线性系统
- php - 在导航中突出显示选定的选项卡 - laravel Blade
- python - 虽然我使用 bs4 来解析站点
- reactjs - React-bootstrap 组件字体大小