如何在yii中的CActiveForm中创建动态文本区域


How to make dynamic textarea in CActiveForm in yii

我想在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;