<?php
class PostController
{
public function save($request)
{
$post = new Post();
$form = $this->createForm(Post::class, $post);
if ($form->isSubmitted() && $form->isValid()) {
try {
$post = $form->getData();
if ($post->published) {
$post->publish();
}
// далее код сохранения данных в БД
} catch (DomainLogin $e) {
// тут ловим исключение если есть ошибка в бизнес-логике
// тут как-то пытаемся добавить ошибку в форму
}
}
return $this->render('post/form.html.twig', [
'form' => $form->createView(),
]);
}
}