0

投稿を編集したいのですが、http://... /posts/edit/2 にアクセスすると、投稿が更新されたという Flash メッセージが表示されるだけです。編集フォームが表示されない...

function edit($id = NULL) {
    $this->Post->id = $id;
    if($this->request->is('post')){
        $this->request->data = $this->Post->read(); 
    }else {
        if($this->Post->save($this->request->data)){
            $this->Session->setFlash('The post has been updated');
            $this->redirect(array('action'=>'index'));
        }
    }
}

私の編集ページ

<h2>Edit post</h2>
<?php
echo $this->Form->create('post',array('action'=>'edit'));
echo $this->Form->input('title');
echo $this->Form->input('body');
echo $this->Form->input('id', array('type'=>'hidden'));
echo $this->Form->end('Edit Post');
?>
4

2 に答える 2

1

あなたの if() 条件が間違っています:

  1. データを投稿する場合は、データを読み取り、編集フォームの $this->request->data に入れるだけです
  2. Else : 空の $this->request->data を保存してから、フラッシュ メッセージでリダイレクトします。

したがって、フォームにアクセスするときは、データを投稿せず、保存してからリダイレクトします。修正は、if() の条件を、投稿しないときに読み取り、投稿するときに保存するように変更することです。

if(!$this->request->is('post'))
于 2013-10-07T12:43:55.810 に答える