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'));
}