【问题标题】:Filtering the data processed by the shipments grid in Sylius在 Sylius 中过滤由发货网格处理的数据
【发布时间】:2019-09-20 09:43:23
【问题描述】:

我在后台有一个发货网格,无论付款状态如何,它都会显示每个订单。我只想显示 payment_status = 已付款的订单。

我在文档和 GitHub 上什么也没找到,只是过滤器作为搜索引擎。另外,网格中没有付款状态列。

如何访问此网格的数据查询并仅选择已付款订单?

这是配置文件 shipping.yml:

sylius_admin_shipment:
resource: |
    alias: sylius.shipment
    section: admin
    templates: "@SyliusAdmin\\Crud"
    only: ['index']
    grid: sylius_admin_shipment
    permission: true
    vars:
        all:
            subheader: sylius.ui.manage_shipments
        index:
            icon: truck
type: sylius.resource

我尝试添加侦听器、过滤器,但我真的不知道如何管理资源(我猜这是包含数据的变量?),我尝试跟踪文件但我没有找到任何东西, 文档中也没有。

顺便说一句,我对 Sylius 完全陌生,所以如果有人有提示或解决方案,那就太好了!提前致谢

【问题讨论】:

    标签: php symfony sylius


    【解决方案1】:

    您发布的配置块是“资源路由”,这意味着它是由 Sylius 处理的特殊路由,可自动为给定资源生成 CRUD 路由。有关这方面的更多信息,请访问documentation of the ResourceBundle about routings

    对于列表页面,它使用一个网格,该网格在您发布的配置中指定。

    您需要的是extend and modify the configuration of the grid
    您可以找到this grid here 的基本配置。

    对于您的情况,最简单的方法是覆盖用于“选择”付款的方法。

    repository:
        method: createListQueryBuilder # <== Change this one
    

    然后为Payment 资源扩展Repository 并在其中创建您的新函数,该函数只会将正确的where 添加到网格使用的查询构建器中。

    更多关于扩展存储库can be found here的信息。

    希望这会有所帮助:)

    【讨论】:

    • 这真的很有帮助,谢谢!我马上去试试 :)
    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2023-03-22
    相关资源
    最近更新 更多