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

问题描述 投票:1回答:3

我有以下表格

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

我是您的新成员,所以我无法猜测错误在哪里。谁能帮忙

编辑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);
    }

Edit-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
    

我具有以下形式beginWidget('CActiveForm',array('id'=>'change-password','enableAjaxValidation'=> true,'enableClientValidation'=> true,...

php yii
3个回答
1
投票

$ model变量不包含Model对象,请检查是否在render函数中传递了正确的对象。

ex代表创建页面:


0
投票

在控制器中渲染到视图时检查模型的定义 $model=new Model name;,并检查您的模型具有相同的属性(变量)


0
投票

我有一个类似的错误,但是当我正在执行登录时..当我写此行时:

© www.soinside.com 2019 - 2024. All rights reserved.