Как написать собственный валидатор?
Например, у меня есть рабочий код.
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ConstraintViolationInterface;
use Symfony\Component\Validator\Validation;
$input = [
null, //fail
0, //fail
1, //fail
2, //fail
"12", //ok - string can be (at least 2 chars)
20, //ok
50 //ok
];
$constraint = new Assert\All([
// the keys correspond to the keys in the input array
new Assert\NotBlank(),
new Assert\AtLeastOneOf([
new Assert\Sequentially([
new Assert\Type(['type' => 'int']),
new Assert\GreaterThanOrEqual(20)
]),
new Assert\Sequentially([
new Assert\Type(['type' => 'string']),
new Assert\Length(2)
])
])
]);
$validator = Validation::createValidator();
$violations = $validator->validate($input, $constraint);
Я хотел бы объединить «проверки» в один класс.
$input = [
null, //fail
0, //fail
1, //fail
2, //fail
"12", //ok - string can be (at least 2 chars)
20, //ok
50 //ok
];
$constraint = new Assert\All(
new IdConstraint()
);
$validator = Validation::createValidator();
$violations = $validator->validate($input, $constraint);
Как должен выглядеть класс IdContrains или IdValidator? Вот что у меня пока получилось.
namespace App\Constraint;
use Symfony\Component\Validator\Constraint;
class IdConstraint extends Constraint
{
public $message = 'The input "{{ string }}" contains invalid values.';
}
namespace App\Constraint;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class IdValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
//what to put here???
}
}
Подробнее здесь: https://stackoverflow.com/questions/625 ... onstraints
Пользовательский валидатор на основе других ограничений ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1770153843
Anonymous
Как написать собственный валидатор?
Например, у меня есть рабочий код.
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\ConstraintViolationInterface;
use Symfony\Component\Validator\Validation;
$input = [
null, //fail
0, //fail
1, //fail
2, //fail
"12", //ok - string can be (at least 2 chars)
20, //ok
50 //ok
];
$constraint = new Assert\All([
// the keys correspond to the keys in the input array
new Assert\NotBlank(),
new Assert\AtLeastOneOf([
new Assert\Sequentially([
new Assert\Type(['type' => 'int']),
new Assert\GreaterThanOrEqual(20)
]),
new Assert\Sequentially([
new Assert\Type(['type' => 'string']),
new Assert\Length(2)
])
])
]);
$validator = Validation::createValidator();
$violations = $validator->validate($input, $constraint);
Я хотел бы объединить «проверки» в один класс.
$input = [
null, //fail
0, //fail
1, //fail
2, //fail
"12", //ok - string can be (at least 2 chars)
20, //ok
50 //ok
];
$constraint = new Assert\All(
new IdConstraint()
);
$validator = Validation::createValidator();
$violations = $validator->validate($input, $constraint);
Как должен выглядеть класс IdContrains или IdValidator? Вот что у меня пока получилось.
namespace App\Constraint;
use Symfony\Component\Validator\Constraint;
class IdConstraint extends Constraint
{
public $message = 'The input "{{ string }}" contains invalid values.';
}
namespace App\Constraint;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class IdValidator extends ConstraintValidator
{
public function validate($value, Constraint $constraint)
{
//what to put here???
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/62579354/custom-validator-based-on-other-constraints[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия