我是YII的新手 尝试使用以下代码更新用户的价值
public function actionProfile(){
$model = new Users;
if(isset($_POST['update'])){
$model->findByPk(Yii::app()->session['user_id']);
$model->user_name = $_POST['Users']['user_name'];
$model->update();
$this->refresh();
//echo '<pre>';
//print_r($_POST);die;
}
}
当我在下面使用它时,我无法得到上面代码的问题,它也是这样做的。请帮忙。
现在我的问题是为什么我无法使用模型的$model
对象更新内容。在上面的代码中。
if(isset($_POST['update'])){
$user = Users::model()->findByPk(Yii::app()->session['user_id']);
$user->user_name = $_POST['Users']['user_name'];
$user->update();
$this->refresh();
//echo '<pre>';
//print_r($_POST);die;
}
答案 0 :(得分:0)
据我所知,当您需要更新模型数据时,您只需加载现有模型,无需创建新模型。这就是为什么第二个模型适合您。
Users::model()->findByPk(Yii::app()->session['user_id']);// loading existing model
$model = new Users; //creating a new model instance
答案 1 :(得分:0)
因为您没有将user_id
分配给$model
进行更新。尝试类似下面的内容。
$model = $model->findByPk(Yii::app()->session['user_id']); //This line
$model->user_name = $_POST['Users']['user_name'];
$model->update();
由于您未指定user_id
(pk),因此将其视为新记录。结果update
被中断。我还建议你添加像这样的错误报告
try{
$model->update();
}catch (Exception $ex){
die($ex->getMessage());
}