首页 > 解决方案 > Shopware 6、管理、订单列表、更改订单日期格式

问题描述

大家。我有一个关于未知产品的小任务。需要在 Shopware 6 的订单列表中更改日期格式。现在它看起来像: 22/06/21, 22:23

我只想显示日期,没有时间。

在 SW 文档中找到指南

在 SW 源中找到订单列表屏幕的模板:shopware\vendor\shopware\administration\Resources\app\administration\src\module\sw-order\page\sw-order-list\sw-order-list.html.twig

带有日期列的代码:

{% block sw_order_list_grid_columns_order_date %}
    <template #column-orderDateTime="{ item }">
        {{ item.orderDateTime | date({hour: '2-digit', minute: '2-digit'}) }}
    </template>
{% endblock %}

在我的插件中添加了新组件:plugins\MyPlugin\src\Resources\app\administration\src\core\component\sw-order-list-override

使用新模板“sw-order-list.html.twig”:

{% block sw_order_list_grid_columns_order_date %}
    {{ item.orderDateTime | format_date('medium') }}
{% endblock %}

并使用新的“index.js”:

import template from './sw-order-list.html.twig';

const { Component } = Shopware;

Component.override('sw-order-list', {
  template
});

进入“plugins\MyPlugin\src\Resources\app\administration\src\main.js”添加: import './core/component/sw-order-list-override/';

在 SW 主机重建管理中,重新加载浏览器中的订单屏幕列表和屏幕已更改,但未按预期进行。现在订单日期看起来像 ISO 日期: 2021-07-13T00:08:21.413+00:00

我的代码有什么问题?

我什至在覆盖模板中添加了类似的内容

{% block sw_order_list_grid_columns_order_date %}
    TEST TEXT
{% endblock %}

但是在订单日期栏中没有看到“TEST TEXT”,而是相同的ISO格式日期。

标签: shopware

解决方案


据我所知,SW6 的管理前端并没有实现完整的树枝功能,而是一个苗条的功能。不幸的是,您只能使用树枝功能,而不是过滤器。

对我来说,诀窍是在没有任何参数的情况下离开日期函数:

{{ item.orderDateTime|date({hour: '2-digit', minute: '2-digit'}) }}
{# results in dd.mm.yyyy hh:ii (or another date format depending on your configuration) #}

{{ item.orderDateTime|date() }}
{# results in dd.mm.yyyy without time #}

您获得的 ISO 格式日期只是没有任何过滤器的 item.orderDateTime,因为您提供的过滤器在这里不起作用。


推荐阅读