我想在yii中动态地制作cactiveform中的文本区域。但我得到了错误,即"属性"与翻译"未定义"
我的数据库中有translation_text
字段,而不是translation
字段。第二,$trans['translation_text']
显示了诗歌翻译,但当我把它放在textArea中时,它给出了错误。正如我所描述的。
我有一个密码。
<?php foreach($model->verseTranslations as $trans) { ?>
<?php $model->translation = $trans['translation_text']; ?>
<?php echo $form->textArea($model,'translation',array('rows'=>6, 'cols'=>50)); ?>
<?php } ?>
但我不知道如何在textArea中保持值$trans['translation_text']
。
任何帮助都将不胜感激。
感谢
这样做:
<?php foreach($model->verseTranslations as $trans) { ?>
<?php echo $form->textArea($model,'translation',array('value'=>$trans['translation_text'],'rows'=>6, 'cols'=>50)); ?>
<?php } ?>
正如RobM之前所说,在您的模型中,但不要忘记在Verse类中添加一个"translation"属性的验证器!:
class Verse extends CActiveRecord
{
public $translation;
public function rules()
{
return array(
array(
'translation',
'safe',
'on'=>'',
),
//others validators here
);
}
}
只需将$form->textArea
中的第二个参数替换为$trans['translation_text']
,即可变为:
<?php echo $form->textArea($model, $trans['translation_text'], array('rows'=>6, 'cols'=>50)); ?>
第二个参数是textArea的值,因此此处任何变量的值都将显示为text-area元素的默认值。
为模型中的Verse类添加翻译属性
class Verse extends CActiveRecord
{
public $translation;