2013-12-11 57 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

相關問題