Yii Version 1.1.15
我有一个模型,其中包含一个attribut中的序列化数组(表)。将此数组显示为视图中的表格可以正常工作。
但我想更新表格单元格,然后再次保存模型中序列化的数组。这不起作用。输出在那里停止(*)没有错误。
在这里你可以看到我做了什么:
$ model->表包含一个序列化数组。未序列化的数组如下所示:
array(
array('dog', 'cat', 'cow'),
array('meat', 'milk', 'gras'),
)
我在控制器中反序列化表:
controller:contactController.php
$model = Contact::model()->findByPk((int) $id);
$table = unserialize($model->input)
$this->render('contact_form', array(
'table' => $table));
}
现在我想在表单中显示和编辑数组$ table作为html-table:
查看:contact_form.php
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'contact-form',
));
?>
<table border="2">
<?php foreach ($table as $row): ?>
<tr>
<?php foreach ($row as $value): ?>
<td>
<!-- (*) output stops here, without errors -->
<?= $form->textArea($value, '', array('rows' => 3, 'cols' => 20)); ?>
</td>
<?php endforeach ?>
</tr>
<?php endforeach ?>
</table>
<div class="row buttons">
<?php echo CHtml::submitButton("save"); ?>
</div>
<?php $this->endWidget(); ?>
输出在&#34; ... textArea ...&#34;。
之前停止如果我只在视图中显示$ table(没有表单),它就像魅力一样:
<table border="2">
<?php foreach ($table as $row): ?>
<tr>
<?php foreach ($row as $value): ?>
<td><?= CHtml::encode($value) ?></td>
<?php endforeach ?>
</tr>
<?php endforeach ?>
</table>
希望这有助于我:-)如何让这个好主意工作?
答案 0 :(得分:0)
实际上你缺少CactiveForm.textArea(.......)
的参数http://www.yiiframework.com/doc/api/1.1/CActiveForm#textArea-detail
textArea($ value,'',array('rows'=&gt; 3,'cols'=&gt; 20)); ?&GT;而不是你的代码应该是
textArea($ model,$ value,array('rows'=&gt; 3,'cols'=&gt; 20)); ?&GT;