我有以下表格
<?php $form = $this->beginWidget('CActiveForm', array(
'id'=>'change-password',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'focus'=>array($model,'old-password')
));
?>
<div class="row">
<?php echo $form->labelEx($model,'oldPassword'); ?>
<?php echo $form->passwordField($model,'oldPassword'); ?>
<?php echo $form->error($model,'oldPassword'); ?>
</div>
<div class="row">
<?php echo CHtml::submitButton('Submit');
?>
</div>
<?php $this->endWidget(); ?>
上面的表单抛出一个错误
Fatal error: Call to a member function isAttributeRequired() on a non-object in /framework/web/helpers/CHtml.php on line 1414
我是新的yii框架,所以我无法猜测错误在哪里。有人能帮助吗?
编辑1
public static function activeLabelEx($model,$attribute,$htmlOptions=array())
{
$realAttribute=$attribute;
self::resolveName($model,$attribute); // strip off square brackets if any
$htmlOptions['required']=$model->isAttributeRequired($attribute);
return self::activeLabel($model,$realAttribute,$htmlOptions);
}
编辑-2
如果删除<?php echo $form->labelEx($model,'oldPassword'); ?>
,则得到错误为
Fatal error: Call to a member function getValidators() on a non-object in CHtml.php on line 2236
2条答案
按热度按时间cgh8pdjw1#
$model变量不包含Model对象,请检查您是否在render函数中传递了正确的对象。
例如,创建页面:
envsm3lx2#
在控制器中渲染视图时,请检查模型
$model=new Model name;
的定义,并检查模型是否具有相同的属性(变量)另一个错误
当渲染到视图时,该函数在控制器中。该函数可能采用某些参数,而您尚未给定这些参数
例如下一个函数中的
$id