【问题标题】:How to display localized dataobject field value in Pimcore?如何在 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 用于查找数据对象的语言呈现值?

【问题讨论】:

    标签: url uri slug pimcore urlslug


    【解决方案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 的语言环境呈现

    【讨论】:

      猜你喜欢
      • 2015-02-16
      • 1970-01-01
      • 2016-10-30
      • 2011-06-18
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-07-11
      • 1970-01-01
      相关资源
      最近更新 更多