Правило Time
Правило Time вешается на поле формы и проверяет,
что введённое значение является корректным временем.
Первым параметром передаётся сообщение об ошибке,
которое показывается пользователю при неудачной валидации.
Правило поддерживает форматы H:i:s и H:i.
Синтаксис
new Time(message: message)
Пример
Давайте создадим форму с полем time и повесим на него правило Time:
<?php
namespace AppForm;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentValidatorConstraintsTime;
use SymfonyComponentOptionsResolverOptionsResolver;
class ArticleType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder->add('time', TextType::class, [
'constraints' => [
new Time([
'message' => 'Please enter a valid time.',
]),
],
]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => null,
]);
}
}
?>
Пример
Давайте отправим корректное время '14:30:00' и проверим форму:
<?php
namespace AppController;
use AppFormArticleType;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$form = $this->createForm(ArticleType::class);
$form->submit(['time' => '14:30:00']);
if ($form->isValid()) {
return new Response('valid');
}
return new Response('invalid');
}
}
?>
Результат выполнения кода:
"valid"
Пример
Давайте отправим некорректное время '25:99' и проверим форму:
<?php
namespace AppController;
use AppFormArticleType;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(Request $request): Response
{
$form = $this->createForm(ArticleType::class);
$form->submit(['time' => '25:99']);
if ($form->isValid()) {
return new Response('valid');
}
return new Response('invalid');
}
}
?>
Результат выполнения кода:
"invalid"