cakePHP用户编辑创建空用户

时间:2014-01-27 07:31:28

标签: php cakephp

我目前有一个带有cakePHP的探针: 例如,如果我打开/ users / edit / 4,则会在用户数据库中创建一个新的空用户条目。

我的UsersController:

  public function edit($id = null) {
      if (!$this->User->exists($id)) {
        throw new NotFoundException(__('Invalid user'));
    }
    if ($this->request->is(array('post', 'put'))) {
        if ($this->User->save($this->request->data)) {
            $this->Session->setFlash(__('The user has been saved.'));
            return $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The user could not be saved. Please, try again.'));
        }
    } else {
        $options = array('conditions' => array('User.' . $this->User->primaryKey => $id));
        $this->request->data = $this->User->find('first', $options);
    }
}

我做错了什么?

亲切的问候,

Battlestr1k3

3 个答案:

答案 0 :(得分:0)

您没有添加$id

public function edit($id = null) {
    if (!$this->User->exists($id)) {
        throw new NotFoundException(__('Invalid user'));
    }

    if ($this->request->is(array('post', 'put'))) {
        $this->request->data['User']['id'] = $id;
        if ($this->User->save($this->request->data)) {
            $this->Session->setFlash(__('The user has been saved.'));
            return $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The user could not be saved. Please, try again.'));
        }
    } else {
        $options = array('conditions' => array('User.' . $this->User->primaryKey => $id));
        $this->request->data = $this->User->find('first', $options);
    }
}

答案 1 :(得分:0)

尝试这个

public function edit($id = null) {
  if (!$this->User->exists($id)) {
    throw new NotFoundException(__('Invalid user'));
}
if ($this->request->is(array('post', 'put'))) {
        $this->User->id = $id;
    if ($this->User->save($this->request->data)) {
        $this->Session->setFlash(__('The user has been saved.'));
        return $this->redirect(array('action' => 'index'));
    } else {
        $this->Session->setFlash(__('The user could not be saved. Please, try again.'));
    }
} else {
    $options = array('conditions' => array('User.' . $this->User->primaryKey => $id));
    $this->request->data = $this->User->find('first', $options);
}

}

答案 2 :(得分:0)

谢谢你们的快速回答,他们都工作了。 我很困惑,因为当我使用浏览器制作GET-Request时,代码甚至被调用,但问题是javascript函数在后台发出了POST请求。

亲切的问候,

Battlestr1k3