我遇到了CakePHP 2.0.2的问题。我想创建一个“编辑个人资料”动作。这是我的控制器动作:
public function edit_profile() {
if ($this->request->is('get')) {
$this->request->data = $this->User->findById($this->Auth->user('id'));
} else {
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('Your profile has been updated'));
}
}
}
这是我的观点:
<h2>Edit Profile</h2>
<?php
echo $this->Form->create('User');
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->input('first_name');
echo $this->Form->input('last_name');
echo $this->Form->input('email');
echo $this->Form->end('Save Profile');
?>
然而,当我提交表格时,似乎没有任何事情发生。我没有成功的消息,我也没有收到任何错误消息。如果我将else语句用于补充if ($this->User->save($this->request->data))
,则会执行该代码块,表示未保存User
模型数据。
我哪里错了?
答案 0 :(得分:1)
如果未保存用户,请在else语句中检查$ this-&gt; User-&gt; validationErrors。我敢打赌,您已经定义了额外的验证规则,这些规则对于不在您表单中的字段会失败。