Yii更新个人资料页面

时间:2011-02-14 04:34:04

标签: php yii

我创建了一个更新个人资料页面。

我在控制器中有这个来填充表单并处理更新:

$user = User::model()->findByPk(Yii::app()->user->id);
// Collect user input 
if (isset($_POST['User'])) {
 $user->attributes = $_POST['User'];

 if ($user->save()) {
  echo "update successfully";
 }
 else {
  echo "update failed";
 }
}

// View
$this->render('user_view', array('user'=>$user,));

然而,这不起作用。虽然$ user-> save为true,但数据库中的记录未更新。我还检查$ _POST ['User']是否返回更新的数据,但是$ user->属性没有保存它们。

为什么会这样?

1 个答案:

答案 0 :(得分:4)

您需要为“大规模分配”设置哪些模型属性是“安全的”。阅读有关此here的更多信息。

质量属性赋值$user->attributes仅分配给具有验证规则的变量。只需给name属性一个规则,即使它只是"safe" validator

public function rules()
{
  return array(
    array('name', 'safe')
  );
}

我很确定这是你遇到的问题,这件事发生在我身上!