Массовое присвоение модели YII AR - PullRequest
1 голос
/ 03 февраля 2012

Я столкнулся со странной проблемой (?). Возможно, это документированная функция, но я не могу ее найти.

У меня есть класс модели, расширенный от CActiveRecord. В модели у меня есть метод rules, который оскорбляет правила проверки.

У меня есть контроллер с действием whatever. В этом действии я пытаюсь назначить атрибуты модели с данными, полученными из $ _POST. Вот упрощенный фрагмент кода от контроллера

$model=new SomeModel();

if(isset($_POST['SomeForm']))
{
    $model->attributes=$_POST['SomeForm'];
    if($model->validate())
    {
         $model->save();

    }
}

Проблема в следующем. Используя массивное ассигинирование, не все поля работают. Только те файлы, у которых есть правила проверки, объявленные в SomeModel::rules(). Если я пытаюсь назначить данные для поля, которое не должно проверяться, тогда это поле пустует в базу данных.

Может кто-нибудь объяснить, что происходит?

Заранее спасибо

1 Ответ

5 голосов
/ 03 февраля 2012

Вам необходимо объявить остальные переменные (которые вы хотите назначить массово) как «безопасные» в функции правил -

http://www.yiiframework.com/wiki/161/understanding-safe-validation-rules/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...