Совсем недавно начал разбираться с Yii. Не могу побороть один момент. Подскажите - не сочтите за труд: что я делаю не так?
Есть 2 связанные модели. Operation и InvLines.
Одна операция может содержать несколько строк. Потому обработку и запись строк InvLines делаю в OperationController.
При редактировании приведенные ниже код файла /views/operation/_form.php корректно заполняет данными из связанной таблицы. Тут все работает как хотелось бы.
Проблемы начинаются когда форма (Operation) заполнена не корректно (например не заполнено обязательное поле). В таком случае приведенный выше код не заполняет форму. В этом случае данные находятся в массиве и их нет в модели (хотя остальные данные корректно обрабатываются). Почему так происходит? Как добавить эти данные в модель?
invLines - добавлен в rules в виде:
array('invLines', 'safe')
Насколько это корректно и правильно? Как можно "скормить" массив?
Если нельзя массив, как можно описать правила в данном случае - когда не известна длинна массива?
Перефразирую вопрос: когда модель берет данные из таблицы, поскольку в связанной таблице несколько строк на строку данных основной модели то модель формирует их в виде такого массива в модели:
В обработке табличного ввода описан случай редактирования уже имеющихся данных. С этим проблем как-раз и нет.
Может я сумбурно описал проблему - попробую немного другими словами.
Когда из главной таблицы подтягиваются данные, вместе с ними подтягиваются данные из связанной таблицы. Связь один ко многим, и доступны они таким образом
$model->invLines[$i]->description
Данные в модель связанной таблицы сохраняю таким образом: