Что-то я недопонимаю в следующем:
// в 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 только первого уровня
Ну вам ничего не пришло, вот оно и пустое. Идем в код и смотрим что возвращает getInstance https://github.com/yiisoft/yii2/blob/master/framework/web/UploadedFile.php#L110 Если файл пришел(content[image] должен быть именно файлом), то возвращает объект UploadedFile иначе null.
var_dump($model->content['image']);//null
Нашел способ
$content = $model->content;
$content['image'] = 'bla-bla-bla';
$model->content = $content;
Проблема в __get и __set родителей, видимо сеттер некорректно работает со свойствами 2ого уровня
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости