我的行动编辑
function edit($id = null)
{
if (empty($this->data)) {
$this->Post->id = $id;
$this->data = $this->Post->read();
}
else {
if ($this->Post->save($this->data)) {
$this->Session->setFlash('Your post has been updated.');
$this->redirect(array('action' => 'index'));
}
}
}
php view
<?php
echo $this->Form->create('Post', array('action' => 'edit'));
echo $this->Form->input('title');
echo $this->Form->input('body', array('rows' => '3'));
echo $this->Form->input('id', array('type'=>'hidden'));
echo $this->Form->end('Save Post');
?>
为什么代码无效:( 当我提交代码时,不是编辑而是保存新的
答案 0 :(得分:0)
试试这个
function edit($id = null)
{
if (empty($this->data)) {
$this->Post->id = $id;
$this->data = $this->Post->read();
}
else {
$this->Post->id = $id;
if ($this->Post->save($this->data)) {
$this->Session->setFlash('Your post has been updated.');
$this->redirect(array('action' => 'index'));
}
}
}
答案 1 :(得分:0)
在您的控制器操作中尝试此操作
public function edit($id = null) {
$this->Post->id = $id;
if(!$this->Post->exists()){
//That post doesn't exists
throw new NotFoundException(__('Post not exist'));
}
if ($this->request->is('post') || $this->request->is('put')) {
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash(__('The post has been updated'),'success_flash');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The post could not be saved. Please, try again.'),'error_flash');
}
} else {
$this->Post->recursive = -1;
$this->request->data = $this->Post->read();
}
}
您的观点看起来不错