Это мой код в представлении / _form.php
<tr>
<td>
<?php
$criteria = new CDbCriteria;
$criteria->order = 'ScriptArgumentClassType'; //or whatever field
echo CHtml::activeDropDownList($meta,**'[]ScriptArgumentClass_id'**,CHtml::listData(AutoScriptArgumentClass::model()->findAll`enter code here`($criteria),'id','ScriptArgumentClassType'), array('prompt'=>'Please select Argument class type'));
?>
</td>
<td>
<?php
$criteria = new CDbCriteria;
$criteria->order = 'TnType'; //or whatever field
echo CHtml::activeDropDownList($meta,**'[]Type_id'**,CHtml::listData(AutoTnType::model()->findAll($criteria),'id','TnType'), array('prompt'=>'Please select TN type'));
?>
</td>
<td>
<?php
$criteria = new CDbCriteria;
$criteria->order = 'service'; //or whatever field
echo CHtml::activeDropDownList($meta,'**'[]Service_id'**,CHtml::listData(Service::model()->findAll($criteria),'id','service'), array('prompt'=>'Please select Service'));
?>
</td>
<td>
<?php
$criteria = new CDbCriteria;
$criteria->order = 'Manufacture'; //or whatever field
echo CHtml::activeDropDownList($meta,'**[]Cpe_id'**,CHtml::listData(AutoCPE::model()->findAll($criteria),'id','Manufacture'), array('prompt'=>'Please select CPE'));
?>
</td>
</tr>
это ряд из 4 столбцов. На самом деле я использовал код jquery для динамического добавления строк при нажатии AddNew. Работает отлично. Сейчас я пытаюсь сохранить его в базе данных, используя yii.
$metadatas=$_POST['AutoTestScriptMeta'];
foreach ($metadatas as $metadata ) {
$meta=new AutoTestScriptMeta;
$meta->attributes = $metadata;
$meta->save(false);
}
Здесь я делаю foreach для вставки нескольких строк в одну таблицу.
Он вставляется таким образом для 2 введенных значений строк
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 2
1 0 0 0
0 3 0 0
0 0 4 0
0 0 0 2
вместо
1 2 3 2
1 3 4 2
вместо вставки 2 строк вставляются 8 строк, каждая со значением столбца.
См. Код, выделенный жирным шрифтом (** **). Вот как я объявляю его как массив.
Любая помощь приветствуется. Пожалуйста, дайте мне знать, если вам нужно больше деталей.