如何在 Pimcore 中显示本地化的数据对象字段值?
Posted
技术标签:
【中文标题】如何在 Pimcore 中显示本地化的数据对象字段值?【英文标题】:How to display localized dataobject field value in Pimcore? 【发布时间】:2021-10-27 13:40:53 【问题描述】:我有具有本地化字段和本地化 URI slug 字段的数据对象。
Controller 通过 Slug 自动查找数据对象:
public function detailAction(
Request $request,
DataObject\FooDataObject $object,
DataObject\Data\UrlSlug $urlSlug
)
return [
'FooPage' => $object,
];
树枝模板:
<h4> FooPage.headline </h4>
如何编写 Twig 模板,以便根据当前 Slug 用于查找数据对象的语言呈现值?
【问题讨论】:
【参考方案1】:关于如何使用 slugs 的文档在这里https://pimcore.com/docs/pimcore/current/Development_Documentation/Objects/Object_Classes/Data_Types/Others.html#page_URL-Slug
我不建议对对象使用 getLocalizedValue -- 将语言设置为 $request 并允许 Pimcore 自己完成所有本地化工作要容易得多:
public function detailAction(
Request $request,
DataObject\FooDataObject $object,
DataObject\Data\UrlSlug $urlSlug
)
// set Locale from the localized field Slug
$slugLocale = $urlSlug->getPosition();
if ($slugLocale)
$request->setLocale($slugLocale);
// you can get the locale now $request->getLocale()
// we use param converters to the matched data object ($object)
// $urlSlug contains the context information of the slug
return [
'FooPage' => $object,
];
所有 twigs 模板保持不变——值将根据 slug 的语言环境呈现
【讨论】:
以上是关于如何在 Pimcore 中显示本地化的数据对象字段值?的主要内容,如果未能解决你的问题,请参考以下文章