我试图更新两个字段,但由于某种原因更新不起作用。 这是方法:Yii2 - 更新不起作用
public function actionChangepassword()
{
$model = $this->findModel(Yii::$app->user->identity->id);
$model->scenario = 'changepassword';
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())):
Yii::$app->response->format = Response::FORMAT_JSON;
if(ActiveForm::validate($model))
return ActiveForm::validate($model);
$model->salt = Yii::$app->security->generateRandomString(32);
$model->password = Yii::$app->security->generatePasswordHash($model->salt . $model->password_new);
$model->update();
return 'true';
endif;
return $this->renderAjax('changePassword',
[ 'model' => $model]
);
}
和JS功能:
$('body').on('beforeSubmit', '#changePassword', function(event, jqXHR, settings) {
var form = $(this);
if(form.find('.has-error').length) {
return false;
}
$.ajax({
url: form.attr('action'),
type: 'post',
data: form.serialize(),
success: function(data) {
// do something ...
}
});
return false;
});
我得到真正的结果,这意味着该函数它的自我是工作,但密码和盐不更新(我试过$ model-> save(),但结果是一样的)。我究竟做错了什么?
你有一个语法错误“真”使用布尔 –