如何在Pimcore中按当前Slug对应语言显示DataObject本地化字段值
方案1:全局设置请求语言(推荐,无需修改现有模板字段调用)
首先修改控制器,将当前Slug对应的语言设置为请求的默认 locale:
public function detailAction( Request $request, DataObject\FooDataObject $object, DataObject\Data\UrlSlug $urlSlug ) { // 新增这行,将Slug对应语言设置为当前请求的默认语言 $request->setLocale($urlSlug->getLanguage()); return [ 'FooPage' => $object, ]; }
修改后原有模板代码无需改动,所有本地化字段会自动读取当前请求locale对应的数值:
<h4>{{ FooPage.headline }}</h4>
方案2:单字段指定语言(适合仅部分字段需要匹配Slug语言的场景)
首先修改控制器将Slug对应的语言标识传入模板:
public function detailAction( Request $request, DataObject\FooDataObject $object, DataObject\Data\UrlSlug $urlSlug ) { return [ 'FooPage' => $object, 'slugLocale' => $urlSlug->getLanguage() ]; }
然后在Twig模板中调用字段时传入语言参数即可:
<h4>{{ FooPage.getHeadline(slugLocale) }}</h4> <!-- 也可以直接简写为 --> <h4>{{ FooPage.headline(slugLocale) }}</h4>
内容的提问来源于stack exchange,提问作者Eugene Kaurov
相关产品推荐
相关产品推荐

