# config/packages/security.yaml
security:
# ...
firewalls:
# Для каждой сущности создать свой файерволл
user1:
anonymous: ~
form_login:
login_path: login
check_path: login
user2:
anonymous: ~
form_login:
login_path: login
check_path: login
$form = $this->createForm(MyFormType::class, $data);
$form->handleRequest($request);
if ($form->isSubmitted() && (/* Проверка полей */)) {
$form->addError(new FormError('Хотя бы одно из полей ... должно быть заполнено'));
}
if ($form->isSubmitted() && $form->isValid()) {
// Сохранение результатов
}
public function redirectIfNoCategoriesFound(): ?RedirectResponse
{
if ($this->getDoctrine()->createQuery('SELECT EXISTS ...')->getSingleScalarResult()) {
$this->setFlash('message', 'Сначала вам нужно создать категорию.');
return $this->redirectToRoute('new_category');
}
}
Но проверка в контроллере как то не по фен-шую.
$builder->get('country')->addEventListener(
FormEvents::POST_SUBMIT,
function (FormEvent $event) use ($context) {
/** @var Country $data */
$data = $event->getForm()->getData();
$form = $event->getForm()->getParent();
// !!! Здесь слушатель события для поля 'region' удаляется !!!
$context->addRegionPole($form,$form->getData()->getAvailableRegions($data));
}
);
class UserNotfier
{
public function notifyUser(User $user): void
{
if (null === $user->getEmail()) {
throw new \Exception('User must have an email!);
}
// ...
}
}
->add('cover', FileType::class, [ 'data_class' => null ])
//* @Entity */
class Group
{
/**
* @ManyToMany(targetEntity="User")
* @JoinTable(
* joinColumns={@JoinColumn(onDelete="CASCADE")},
* inverseJoinColumns={@JoinColumn(onDelete="CASCADE")}
* )
*/
private $users;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('taskName',TextType::class)
->add('file', FileType::class, [ 'mapped' => false, 'label' => 'Документ'])
;
}
$uploadedFile = $form['file']->getData();
$fileName = 'myfile.txt';
$uploadedFile->move('public/uploads', $fileName);
$task->setFileName('public/uploads/'.$fileName);
if (!$event->getException()->getPrevious() instanceof AlreadyLoginException) {
return;
}