Метод isSubmitted
Метод isSubmitted принадлежит классу Form и возвращает логическое значение true или false в зависимости от того, была ли форма отправлена. Метод не принимает параметров. Обычно он используется в контроллере после вызова метода handleRequest, чтобы проверить, пришли ли данные из браузера, прежде чем выполнять валидацию или сохранять данные.
Синтаксис
public function isSubmitted(): bool
Пример
Давайте создадим простую форму и проверим, была ли она отправлена:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormExtensionCoreTypeSubmitType;
use SymfonyComponentFormForms;
use SymfonyComponentRoutingAttributeRoute;
class FormController extends AbstractController
{
#[Route('/form', name: 'form_index')]
public function index(Request $request): Response
{
$form = $this->createFormBuilder()
->add('name', TextType::class)
->add('save', SubmitType::class, ['label' => 'Send'])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted()) {
return new Response('Form is submitted');
}
return new Response('Form is not submitted');
}
}
?>
Результат выполнения кода при первом открытии страницы:
"Form is not submitted"
Результат выполнения кода после отправки формы:
"Form is submitted"
Пример
Давайте проверим, была ли форма отправлена, перед тем как получить данные:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormExtensionCoreTypeSubmitType;
use SymfonyComponentFormForms;
use SymfonyComponentRoutingAttributeRoute;
class FormController extends AbstractController
{
#[Route('/form/data', name: 'form_data')]
public function data(Request $request): Response
{
$form = $this->createFormBuilder()
->add('name', TextType::class)
->add('save', SubmitType::class, ['label' => 'Send'])
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted()) {
$data = $form->getData();
return new Response('Data: ' . $data['name']);
}
return new Response('Please submit the form');
}
}
?>
Результат выполнения кода после отправки формы со значением 'abcde':
"Data: abcde"
Смотрите также
-
класс
Form,
который представляет форму в Symfony -
метод
handleRequest,
который обрабатывает запрос и заполняет форму данными -
метод
isValid,
который проверяет, прошла ли форма валидацию -
метод
getData,
который возвращает данные формы