@inververs

Как делается валидация динамических полей?

Я не понимаю как делать валидацию еще не известных данных. Простой пример. Предположим что в админке я могу составить форму, которую должны заполнять пользователи, первое поле я называю Фамилия, ставлю галочку, что оно обязательно, указываю минимальную длину 2; максимальную 40.
Добавляю второе поле - скажем Цвет, тоже определяю правила. Поля у меня совершенно любые, то что я вписываю, то и должно отобразиться клиенту.

Как лучше это хранить, как лучше генерировать форму, и сам вопрос, как сделать правильно валидацию? Разбираюсь в yii2 и хочется сделать правильно.
  • Вопрос задан
  • 492 просмотра
Пригласить эксперта
Ответы на вопрос 4
@NETChaser
Валидацию делать надо с помощью регулярных выражений конечно на клиенте... а после POST ещё и на сервере, или только на сервере.
Ответ написан
IvanCher
@IvanCher
Мысли шире
Пусть у поля атрибут name будет каким-то идентификатором, по которому можно будет узнать все его ограничения. В контролере отдаешь данные на валидацию модели поля, модель по идентификатору получает правила(ограничения), валидирует, отвечает контролеру, контролер формирует ответ клиенту.
Ответ написан
@Centrino
Можете создавать шаблоны форм с описанием полей и регулярками как для бека так и для фронта например в Mongo.
Ответ написан
@karminski
Senior PHP /React.js developer
Лучше на мой взгляд определить для динамических полей аттрибуты:
* type (string, int, datetime),
* required (обязательное ли поле),
* multiple/single (возможно ли вводить несколько значений)
* и т.п. в зависимости от задач

Ну а потом написать валидаторы в зависимости от type/required/multiple. Динамические поля и их аттрибуты хранить в БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы