Доступ к курсу "Symfony. Работа с формами." закрыт

Автор: evgeniydoronin 02/06/2020 03:06:13

Дмитрий, а если нужно вывести сообщение об ошибке при отправке. Вдруг что-то пошло не так) Как это условие правильнее создать? Если ошибка при отправке - то сообщение об ошибке, если успех - то сообщение соответственно.

Автор: Дмитрий Ченгаев 02/06/2020 03:06:37

Евгений, если я Вас правильно понял, Вам нужна javascript валидация формы.

Т.е. проверка заполнения формы до ее отправки и перезагрузки страницы. Это не совсем к Symfony )

Часто использую вот такой плагин для библиотеки jQuery, если это нужно реализовать.

https://jqueryvalidation.org/

Или можно самому написать простой скрипт на Javascript, который будет проверять правильность заполнения полей.

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

Автор: evgeniydoronin 02/06/2020 03:06:40

Дмитрий, я не про валидацию на фронте) Если в БД не сохранилась запись по каким-то причиниам, я про такого рода случаи, не совсем правильно вопрос написал выше.

Автор: Дмитрий Ченгаев 02/06/2020 04:06:47

Я такую проверку не делаю.

Дело в том, что если у вас по каким-то причинам запись не сохранилась в базу данных, будет ошибка 500 и страница с формой не откроется.

Можно попробовать через php exception (исключения) отловить это.

и добавлять проверку на пустоту создания элемента сущности if(empty(...))

Но, честно, я с этим не заморачиваюсь )

Автор: evgeniydoronin 02/06/2020 07:06:06

Огромное спасибо! Да, видимо через исключения попробую сделать)

Автор: Георгий Фадеев 04/05/2020 06:05:33

Странно что симфони нравится, когда в 1 акшене содержатся как минимум 2 return(плохая практика). Приходится все равно делать return $this->redirect, придется вынести в сервис редирект , в общем тут они косякнули чутка.

Автор: Александр Попов 31/03/2022 10:03:07

Не вижу здесь косяка. Эти return - для двух разных кейсов, когда форма только впервые показана, и когда отправлена.

Автор: Дмитрий Ченгаев 31/03/2022 10:03:48

Согласен. Тоже думаю, что для этого случая 2 return допустимы.

Автор: Дмитрий Ченгаев 10/03/2020 08:03:21

Станислав, нужно понимать, что Symfony - это фреймворк, который работает на сервере (на стороне бэкенд) на языке программирования PHP.

Чтобы Symfony обработал данные, должен произойти запрос к серверу с перезагрузкой страницы.

Для отправки формы без перезагрузки страницы, нужно реализовать обмен данными между сервером (Symfony) и клиентом с помощью Ajax запросов.