2013-12-11 58 views
0

我想动态地在yii中创建cactiveform中的文本区域。但我得到错误,即“属性”Verse.translation“未定义”如何在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 } ?> 

但我不知道如何保持价值$trans['translation_text']在textarea的。

任何帮助将不胜感激。

感谢

+0

“我得到的错误”是不是很丰富。更加详细一些。 – Jon

回答

1

做这样的:

<?php foreach($model->verseTranslations as $trans) { ?> 
<?php echo $form->textArea($model,'translation',array('value'=>$trans['translation_text'],'rows'=>6, 'cols'=>50)); ?> 
<?php } ?> 

而在你的模型ROBM前面说的,但不要忘了添加验证程序你的Verse课为'翻译'属性! :

class Verse extends CActiveRecord 
{ 
    public $translation; 
    public function rules() 
    { 
     return array( 
        array(
          'translation', 
          'safe', 
          'on'=>'', 
        ), 
        //others validators here 
       ); 
    } 
} 
+0

谢谢Jacko07。您的$ form-> textArea书面方式是正确的。 –

0

只是$trans['translation_text']替换$form->textArea第二个参数,使之成为:

<?php echo $form->textArea($model, $trans['translation_text'], array('rows'=>6, 'cols'=>50)); ?> 

第二个参数是textarea的价值,所以这里的任何变量的值将显示作为文本区域元素的默认值。

+0

对不起。它不起作用。我测试过了。 –

+0

我不认为我理解你的问题。请更清楚地解释 –

0

添加翻译属性诗句模型类

class Verse extends CActiveRecord 
{ 
     public $translation; 
+0

如何将翻译属性添加到Verse类中? –

+0

*编辑添加+你确定你在数据库中有'翻译'字段吗? – RobM

相关问题