Будет ли работать валидация в yii2 без ActiveForm?

Доброго времени суток! Будет ли работать валидация в модели без использования класса ActiveForm? Дело в том, что я использую ajax, а встроенный в ActiveFrom pjax меня не устраивает. Если без ActiveForm не получится тогда вопрос поставлю по другому. Если я повешу событие на форму и буду отправлять ajax-запрос в контроллер данные попадут в модель в её публичные свойства?

Читал, что валидация полностью завязана на ActiveFrom. Вот я и думаю попытаться использовать встроенную в yii валидацию или забить и каждый параметр проверять на голом php? Не давно начал изучать yii, и пока не понимаю будет ли работать валидация, если форму отправить аяксом.
  • Вопрос задан
  • 912 просмотров
Решения вопроса 1
@BugFixMan Автор вопроса
Нашёл способ решить свою проблему. Мне помогло массовое присвоение. Удобная штука)

cc99e15d6c7f45bcb0c11d8dc795c4a5.png
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
...данные попадут в модель в её публичные свойства?

Да, попадут.
...и пока не понимаю будет ли работать валидация, если форму отправить аяксом.

Да, будет работать.
Почитайте об ajax валидации.
Ссылка в помощь.
Ответ написан
Akdmeh
@Akdmeh
PHP, Yii2, Music
ActiveForm это те же формы, но со стероидами. Все плюсы этого виджета сводятся к автоматической проверке большинства стандартных валидаторов Yii на стороне клиента + возможность AJAX-валидации + автоматизированная подсветка ошибок формы с предыдущих запросов.
Вы можете не использовать ActiveForm, а использовать либо чистый HTML, либо хелпер \yii\helpers\HTML, и уже самому навешивать те обработчики, которые вам нужны, а для Yii2 оставить только серверную валидацию.
Вообще в обсуждениях Yii2 все идет к тому, что они будут постепенно выносить все эти FrontEnd-виджеты в отдельные пакеты, а Yii2 именно сосредоточится на "серверном" коде. Так что если вам не нужно использовать ActiveForm - вы вольны использовать свои frontend-технологии.

Ряд поправок сходу. Изучите генерацию name в input Yii2 - сэкономит немало времени. Суть в том, что они используют по умолчанию "пространства имен" для мультиотправки нескольких форм да порядка в коде. Например, name input-тега для заголовка новости может иметь название News[header], где первая часть - обычно название класса, если поведение не переопределено в классе методом formName, а в скобках - название поля.
Это упрощает валидацию нескольких разных моделей.
Немного сложнее устроен "табличный ввод", но это уже направляю вас к документации.
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Читал, что валидация полностью завязана на ActiveFrom

Только клиентская. Валидация имеет 2 части, грубо говоря. 1 - на сервере, 2 в виде js скриптов, которые подключает active form. Так что в случае с ajax, совсем не обязательно использовать activeForm, хотя activeForm подразумевает вариант и с ajax валидацией.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы