哪种模型方法更新cakephp中的行

时间:2014-01-14 10:39:08

标签: cakephp

我在cakephp的控制器中创建方法以更新表中的现有行时遇到问题,有人可以建议我使用适当的模型方法来更新表中的行

<?php 
class UsersController extends AppController
{
public function update($id)
  {
      if(isset($_REQUEST['update']))
      {
        // method of model to update the row    
      }
     else
     $this->set('user',$this->User->find('first',array('conditions'=>array('id'=>$id))));
  }
}
?>

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

Try the code.......

<?php

class UsersController extends AppController {

    public function update($id = null) {
        if ($id) {
            if ($this->request->is('post')) {
                $this->User->id = $id;
                $this->User->save($this->request->data);
            } else {
                $this->set('user', $this->User->find('first', array('conditions' => array('id' => $id))));
            }
        }
    }

}
?>

答案 2 :(得分:0)

@burzum在阅读了你提供的链接教程之后我找到了我的问题的解决方案,在模型中可用的模型 updateAll()方法中使用了这个我有表的更新行。

public function update($id)
  {
      if(isset($_REQUEST['update']))
      {
            $this->User->id=$id;
            if($this->User->updateAll(array('User.fname'=>"'".$_REQUEST['fname']."'",'User.lname'=>"'".$_REQUEST['lname']."'",'User.email'=>"'".$_REQUEST['email']."'"),array('id'=>$id)))
                echo '<script>alert("update successfully")</script>';
            else
                echo '<script>alert("failes to update ")</script>';
      }
      else
        $this->set('user',$this->User->find('first',array('conditions'=>array('id'=>$id))));
  }