валидация массивов инпутов смежных моделей

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
PetrOFF
Сообщения: 52
Зарегистрирован: 2011.11.23, 13:07

валидация массивов инпутов смежных моделей

Сообщение PetrOFF »

Не могу понять как КОРЕКТНО реализовать валидацию множественных полей смежной модели.
Пример допустим есть модель Item и Itemdescription
данные приходяшие на вход следушие

Код: Выделить всё

array(
"dt" => date,
"category_id" => integer,
"avialable" => char,
...
"item_description" => array(
0 => array(
"ru" => array("title" => text, ...),
"en" => array("title" => text, ...),
)
1 => ...,
)
);
 
Интересует только валидация массива item_description
Хочю все это реализовать с виджетом CActiveForm, что бы коректно отображать ошибки и оставался текст в полях после валидации.
На данный момент просто строю этот массив и потом в aftersave прохожу в цикле и сохраняю.
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: валидация массивов инпутов смежных моделей

Сообщение lancecoder »

а покажите как не КОРЕКТНО вы реализовали
PetrOFF
Сообщения: 52
Зарегистрирован: 2011.11.23, 13:07

Re: валидация массивов инпутов смежных моделей

Сообщение PetrOFF »

Ну некоректно я вобше просто поставил правило для этого поля requred.
в виери

Код: Выделить всё

<? foreach (Yii::app()->params['lang'] as $key): ?>
                <span><?= $key['id']; ?></span>
                <? echo CHtml::textArea("Item[description][{$key['id']}]", ""); ?>
                <br/>
            <? endforeach; ?>
Ну а валидация в модели в aftersave и она не использует возможность Yii для сообшение об ошибке.
Самое на данный момент печальное то что, не сохраняются ранее введеный данные если форма не прошла валидацию, из-за использования <? echo CHtml::textArea("Item[description][{$key['id']}]", ""); ?>
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: валидация массивов инпутов смежных моделей

Сообщение lancecoder »

прочитайте про формы и rules, вся валидация там, если не хватает стандартных валидаторов, тогда пишите свой
Ответить