yurygolikov
@yurygolikov

Почему Yii2 ActiveRecord не заполняет свойства объекта?

Yii2 ActiveRecord не заполняет свойства объекта.
Те данные явно приходят судя по логам и заполненному свойству _attributes, но если обращаться так: $model->id то там NULL. Почему так?
Я подозреваю, что дело в проверках и rules. Пробовал разные правила валидации вводить, но так и не понял, что я упускаю.
Спасибо!

Упростил, чтобы выявить мою ошибку:

Модель Sneaker
public $id;
public $param1;
public $param2;
public function rules()
{
   return [
       [['id', 'param1', 'param2'], 'safe']
   ];
}


Экшн
$model= Sneaker::findOne(2);
return $this->render('index', [
    'model' => $model,
]);


Таблица
id - INT
param1,param2 - VARCHAR


Вывод модели
app\models\Sneaker Object
(
    [id] => 
    [param1] => 
    [param2] => 
    [_attributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 2
            [param1] => 21
            [param2] => 22
        )

    [_oldAttributes:yii\db\BaseActiveRecord:private] => Array
        (
            [id] => 2
            [param1] => 21
            [param2] => 22
        )

    [_related:yii\db\BaseActiveRecord:private] => Array
        (
        )

    [_errors:yii\base\Model:private] => 
    [_validators:yii\base\Model:private] => 
    [_scenario:yii\base\Model:private] => default
    [_events:yii\base\Component:private] => Array
        (
        )

    [_behaviors:yii\base\Component:private] => Array
        (
        )

)
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
@BorisKorobkov
Web developer
Удалите из модели public-свойства. Модель их автоматически сделает сама на основе данных из БД.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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