cakephp在编辑页面获取新旧记录

问题描述:

CakePHP 2,我有一个编辑页面。我想看看有什么改变。因此,我需要获得$ this-> request-> data。但是,它无法获得旧记录(非编辑)和新记录(已编辑)。我该怎么做?请cakephp在编辑页面获取新旧记录

public function admin_edit($id = null) { 
     $this->BrandImage->id = $id; 
     if (!$this->BrandImage->exists($id)) { 
      throw new NotFoundException(__('Invalid brand image')); 
     } 

     $old_content = array(); 
     $new_content = array(); 

     ***debug($this->request->data);*** 

     if ($this->request->is('post') || $this->request->is('put')) { 
      if ($this->BrandImage->save($this->request->data)) { 

       ***debug($this->request->data);*** 

       $this->Session->setFlash(__('The brand image has been saved'), 'flash/success'); 
       $this->redirect(array('action' => 'index')); 
      } else { 
       $this->Session->setFlash(__('The brand image could not be saved. Please, try again.'), 'flash/error'); 
      } 
     } else { 
      $options = array('conditions' => array('BrandImage.' . $this->BrandImage->primaryKey => $id)); 
      $this->request->data = $this->BrandImage->find('first', $options); 
     } 
     $brands = $this->BrandImage->Brand->find('list'); 
     $imageTypes = $this->BrandImage->ImageType->find('list'); 
     $this->set(compact('brands', 'imageTypes')); 

    } 

修改的数据可以在$ this-> request-> data中找到,并且您可以在保存发布的数据之前从数据库读取旧数据。请看下面的例子:

public function admin_edit($id = null) { 
    $this->BrandImage->id = $id; 
    if (!$this->BrandImage->exists($id)) { 
     throw new NotFoundException(__('Invalid brand image')); 
    } 

    $old_content = array(); 
    $new_content = array(); 

    ***debug($this->request->data);*** 


    if ($this->request->is('post') || $this->request->is('put')) { 

     /* This is the old data read from the database before the save */ 
     $old_content = $this->BrandImage->find('first', array(
     'conditions' => array(
      'BrandImage.id' => $id 
       ) 
     )); 

     debug($old_content); 

     if ($this->BrandImage->save($this->request->data)) { 

      ***debug($this->request->data);*** 

      $this->Session->setFlash(__('The brand image has been saved'), 'flash/success'); 
      $this->redirect(array('action' => 'index')); 
     } else { 
      $this->Session->setFlash(__('The brand image could not be saved. Please, try again.'), 'flash/error'); 
     } 
    } else { 
     $options = array('conditions' => array('BrandImage.' . $this->BrandImage->primaryKey => $id)); 

     $this->request->data = $this->BrandImage->find('first', $options); 
    } 
    $brands = $this->BrandImage->Brand->find('list'); 
    $imageTypes = $this->BrandImage->ImageType->find('list'); 
    $this->set(compact('brands', 'imageTypes')); 

}