Фильтрация данных, обработанных сеткой отгрузок в Sylius - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть сетка отгрузок в бэк-офисе, которая показывает каждый заказ независимо от статуса оплаты.Я хочу отображать только те заказы, где payment_status = paid.

Я ничего не нашел в документе и на GitHub, только фильтры в качестве поисковых систем.Кроме того, в сетке нет столбца «Статус платежа».

Как получить доступ к запросу данных для этой сетки и выбрать только оплаченные заказы?

Вот файл конфигурации shipment.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, кстати, так что, если у кого-то есть совет или решение, это было бы здорово!Заранее спасибо

1 Ответ

0 голосов
/ 20 сентября 2019

Блок конфигурации, который вы опубликовали, представляет собой «маршрутизацию ресурсов», что означает, что это специальная маршрутизация, обрабатываемая Sylius для автоматической генерации CRUD-маршрутизации для данного ресурса.Более подробную информацию об этом можно найти в документации ResourceBundle о маршрутизации .

Для страницы списка используется сетка, которая указана в опубликованной вами конфигурации.

Вам нужно расширить и изменить конфигурацию сетки .
Базовая конфигурация для этой сетки находится здесь .

ДляВ вашем случае самым простым способом было бы переопределить метод, используемый для «выбора» платежей.

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

Затем увеличьте Repository для ресурса Payment и создайте в нем новую функцию, которая будетпросто добавьте правильный where в построитель запросов, используемый сеткой.

Дополнительную информацию о расширении репозитория можно найти здесь .

Надеюсь, это поможет :)

...