Yii2 Перезапись свойств объекта 2ого уровня

163
01 февраля 2018, 19:10

Что-то я недопонимаю в следующем:

        // в POST $model->name пришло любое значение
        $model->name = 'test';
        print_r($model->name); // Вывод 'test'
        // в POST $model->content['image'] пришло пустое значение
        $model->content['image'] = UploadedFile::getInstance($model,'content[image]');
        // или $model->content['image'] = 'любойтекст';
        print_r($model->content['image']); // Вывод пустой

На rules можно не ориентироваться

В поле content я храню различные значения, которые не требуются для построения запросов к базе, это могут быть мета-теги, изображения. Потом в BeforeSave я массив $this->content перекодирую в JSON и добавляю в базу.

Как видно из кода выше, я просто не могу переназначить любой элемент массива $model->content, но могу переназначить любое свойство $model только первого уровня

Answer 1

Ну вам ничего не пришло, вот оно и пустое. Идем в код и смотрим что возвращает getInstance https://github.com/yiisoft/yii2/blob/master/framework/web/UploadedFile.php#L110 Если файл пришел(content[image] должен быть именно файлом), то возвращает объект UploadedFile иначе null.

var_dump($model->content['image']);//null
Answer 2

Нашел способ

$content = $model->content;
$content['image'] = 'bla-bla-bla';
$model->content = $content;

Проблема в __get и __set родителей, видимо сеттер некорректно работает со свойствами 2ого уровня

READ ALSO
Перебор массива средствами php

Перебор массива средствами php

Структура массива:

196
Modx Revo, minishop2, вывод не типовых товаров

Modx Revo, minishop2, вывод не типовых товаров

С minishop2 раньше не работалКак можно реализовать функционал для товаров с разными ценами(скидкой) в зависимости от вида как на этой странице...

191
Запрос зависимый минимум от двух, или больше совпадений

Запрос зависимый минимум от двух, или больше совпадений

Необходимо составить запрос который ищет возможные совпадения, но надо что бы он срого учитывал 2 условия

260
Использование __ и ____ в PHP

Использование __ и ____ в PHP

Проходил тест и там были вопросы, которые я не понял

183