Как прервать выполнение запроса в функции PrePersist? - PullRequest
0 голосов
/ 30 мая 2019

В настоящее время я работаю над проектом synfomy 4.2 с использованием sonata admin и Doctrine ORM .

Я хотел бы прервать выполнение запроса, если для какого-либо условия установлено значение true, например, если я хочу вставить новый Продукт, но Продукт по какой-то причине теряет цену параметра, тогда я хотел бы прервать это запросить и установить флэш-сообщение, чтобы пользователь знал, что Продукт не может быть создан, потому что он имеет низкую цену.

Я провел исследование, но не могу найти ничего, что относится к моей проблеме, я знаю, что эту функцию необходимо применить в функции PrePersist на объекте.

Я ломал голову чем-то вроде этого.

/**
* @ORM\PrePersist
*/
public function prePersist(LifecycleEventArgs $args)
{
    $em = $args->getEntityManager("App\Milenio\VersionsControlBundle\Entity\Plugins");
    $em->getConnection();
    $em->flush();
    $em->clear();
}

Но, конечно, это ничего не делает, я все еще вызываю очевидное исключение SQL.

Я знаю, что есть способы сказать sonata admin сделать требуемый ввод, но в моем конкретном случае это не поможет.

1 Ответ

0 голосов
/ 31 мая 2019

Не будет ли больше смысла заставлять пользователя вводить цену или просто делать цену не обнуляемой, и ловить ошибку в контроллере, а затем сообщать пользователю, что эти вещи являются более чистыми решениями и неТребуются слушатели.Более того, я не думаю, что вы можете сделать сброс в предварительном списке, возможно, entitymanager-> rollback или отсоединение entitymanager - это то, что вы ищете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...