как лучше хранить serialize, json, еще варианты?
Грубо говоря json лучше и быстрее. Serialize удобнее, если пихать в бд объекты совственных классов, что вам скорее всего не нужно.
как лучше обратиться к данным модели формы?
В модели написать метод типа
getDataAsModel(){...}
, который возвратит
DynamicModel
составленную из вашего
json_decode($this->data);
После сабмита на клиенте Контроллер должен принять данные в такую-же динамическую модель взятую из
getDataAsModel(){...}
, вызвать валидацию и сунуть её в метод
setMyDataModel($dinModel)
, который сделает что нужно и засунет
$this->data = json_encode($data);
Доки.
www.yiiframework.com/doc-2.0/yii-base-dynamicmodel.html