@EVOSandru6

Почему в yii не определяется дополнительный атрибут safe при post запросе?

Добрый день,
Есть модель Users . В неё я включил 2 свойства не из таблицы

class Users extends CActiveRecord
{

public $test;
public $configsArray;
...
public function rules()
{
return
[
    [['test','configsArray'],'safe'],
...
]

...
}


Фрагмент формы, где я вывожу эти 2 свойства:

...
echo $form->checkBoxList($model, 'configsArray', CHtml::listData(ConfigUser::model()->findAll(), 'id', 'name'));?>
...
echo $form->textField($model, 'test');?>
...


Есть action (CopnfigUsersController/update):

...
if(isset($_POST['Users']))
{
            $model->setAttributes($_POST['Users'],true);
            My::printArr($model->configsArray);
            My::printArr($model->test);
            My::printArr($model->attributes);
            die();
}

...


Получаю такую картинку:

Array
(
    [0] => 21
    [1] => 23
)

test)))))))))))))))

Array
(
    [id] => 7
    [name] => Михаил Боярский
    [role_id] => 1
    [email] => mihail@mail.ru
    [password] => 1b5e867a2e6bf3c45977b6a513b7af3e
    [contacts] => +77775556677
    [sys_date] => 
    [sys_date_update] => 
    [sys_user] => 
    [exist] => 1
    [status] => 1
    [category_id] => 1
    [photo_id] => 
    [photo] => 
)


Т.е. $model->configsArray и $model->test не воспринимаются как часть целого $model->attributes . Это можно как-то исправить?

И еще вопрос: после неудачного сохранения в данной форме:

var_dump($model->getErrors());

Выдало:
array(0) { }

Лог пустой(
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
@corpsepk
Как минимум должно быть public function rules()
а не public function relations ()

---

Это ведь yii1
https://github.com/yiisoft/yii/blob/1.1.16/framewo...
array('attribute list', 'validator name', 'on'=>'scenario name', ...validation parameters...)

attribute list: specifies the attributes (separated by commas) to be validated;


Попробуйте изменить на
array('test, configsArray' ,'safe'),
Ответ написан
Ваш ответ на вопрос

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

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