我希望在特殊页面更改密码。
当我点击“更改密码”时,我必须进入密码视图。
这是我需要去的更新视图的代码
<?php
/* @var $this UserController */
/* @var $model User */
$this->menu=array(
array('label'=>'User List', 'url'=>array('index')),
array('label'=>'Create User', 'url'=>array('create')),
array('label'=>'View User', 'url'=>array('view', 'id'=>$model->id)),
array('label'=>'Change password', 'url'=>array('password', 'id'=>$model->id)),
);
?>
<h1>Change user <?php echo $model->id; ?></h1>
<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>
这是我的password.php视图文件
<?php
$this->menu=array(
array('label'=>'List user', 'url'=>array('index')),
array('label'=>'Create user', 'url'=>array('create')),
array('label'=>'View user', 'url'=>array('view', 'id'=>$model->id)),
array('label'=>'Change user', 'url'=>array('update', 'id'=>$model->id)),
);
?>
<?php
CHtml::beginForm();
CHtml::textField('password');
CHtml::submitButton('Change');
CHtml::endForm();
?>
UserController具有action actionPassword()
public function actionPassword($id) {
$model=$this->loadModel($id);
$model->password=$_POST['password'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
$this->render('password');
}
在示例中我使用此代码工作正常。但我有错误 http://pastebin.com/XbCwfhRT
所有文件和文件夹都具有root权限。我做错了什么?一个月前,相同的代码工作正常,我不明白出错的地方。
答案 0 :(得分:0)
您忘记检查$_POST
是否已设置,以便在加载操作时(提交前)$_POST['password']
不存在。
if(isset($_POST['password'])) {
$model->password=$_POST['password'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}