yii 致命错误:调用成员函数isAttributeRequired()

ldioqlga  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(253)

我有以下表格

<?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
cgh8pdjw

cgh8pdjw1#

$model变量不包含Model对象,请检查您是否在render函数中传递了正确的对象。
例如,创建页面:

/* in the controller class */
public function actionCreate() {
    $model=new YourModel;
    $this->performAjaxValidation($model);

    if(isset($_POST['YourModel']))
    {
        $model->attributes=$_POST['YourModel'];
        if($model->save())
            $this->redirect(array('view','id'=>$model->id));
    }

    $this->render('create',array(
        'model'=>$model,
    ));
}
/* in the create.php view */
....
echo $this->renderPartial('_form', array('model'=>$model));
....
envsm3lx

envsm3lx2#

在控制器中渲染视图时,请检查模型$model=new Model name;的定义,并检查模型是否具有相同的属性(变量)
另一个错误
当渲染到视图时,该函数在控制器中。该函数可能采用某些参数,而您尚未给定这些参数
例如下一个函数中的$id

public function actionUpdateTeams($id) {

}

相关问题