Переход с двумя возможными местами [Symfony Workflow]

В настоящее время мне интересно, как я могу реализовать переход, который имеет два возможных места.

Есть следующие места:

  • начальный
  • valid_data
  • неверные данные

Я хочу знать, как разработать переход «проверка», который выполняет некоторую проверку, и если он не удался, он должен установить маркировку на valid_data, в противном случае - на invalid_data.

Обычно я могу определить только состояние (или несколько), но не такие необязательные состояния, как это (valid_data) или то (invalid_data).

Кто-нибудь знает решение для этого?

Спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
780
1

Ответы 1

Есть только один способ сделать это, объявив два перехода:

 framework:
    workflows:
        pull_request:
            type: 'state_machine'
            initial_place: inital
            places:
                - inital
                - valid_data
                - invalid_data
            transitions:
                valida:
                    from: inital
                    to: valid_data
                invalid:
                    from: inital
                    to: invalid_data

Также вы можете определить еще один шаг, например in_validation, и перейти от initial к in_validation, а затем к одному из двух конечных состояний.

В документации вы можете увидеть очень хороший пример: http://symfony.com/doc/current/workflow/state-machines.html

Да, это тоже решение, которое я нашел для своего вопроса. Но что есть, когда я хочу заблокировать переход «valida», когда он не работает (из-за прослушивателя GuardEvent), а затем применить другой переход, это также невозможно.

xyNNN 24.07.2018 09:07

Другие вопросы по теме