我想动态地在yii中创建cactiveform中的文本区域。但我收到错误,即“财产”Verse.translation“未定义”
我的数据库中有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']
。
任何帮助将不胜感激。
由于
答案 0 :(得分: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
);
}
}
答案 1 :(得分:0)
只需将$form->textArea
中的第二个参数替换为$trans['translation_text']
,即可将其变为:
<?php echo $form->textArea($model, $trans['translation_text'], array('rows'=>6, 'cols'=>50)); ?>
第二个参数是textArea的值,因此这里任何变量的值都将显示为文本区域元素的默认值。
答案 2 :(得分:0)
在模型中添加翻译属性到Verse类
class Verse extends CActiveRecord
{
public $translation;