cake phpを勉強 ブログチュートリアルを実践6

前回、削除までできたので、次は、
POSTの編集機能を追加します。

基本的には、controllerにアクションを追加したから
VIEWを作成という流れですね。

/app/controllers/posts_controller.phpに
function edit($id = null)
{
    if (empty($this->data))
    {
        $this->Post->id = $id;
        $this->data = $this->Post->read();
    }
    else
    {
        if ($this->Post->save($this->data['Post']))
        {
            $this->flash('投稿を更新しました。','/posts');
        }
    }
}
を追加。
if (empty($this->data))//フォームの中身が空のときは、
$this->Post->id = $id;//指定されたIDの
$this->data = $this->Post->read();//データを読み込む
else//それ以外の場合(フォームの中身が空でないとき)
if ($this->Post->save($this->data['Post']))//データが保存されたら
$this->flash('投稿を更新しました。','/posts');//「投稿を更新しました」を表示
という流れの処理です。
save()関数を実行すると自動的にバリデーションがかけられます。


次にVIEWの作成
/app/views/posts/edit.thtmlに

基本的には、addのVIEWと一緒です。
のURL、 hidden('Post/id'); ?>を追加 のみが違います。
Cake は、もし 'id' フィールドがあって、現在保存されているデータがあれば、それを編集するのだと考えます。

というのを頭にいれておく。

上記の2つを試しにアップして、
/cake/posts/edit/にアクセスすると、
新規登録時の/cake/posts/add/と同じような動作をします。
つまりIDが指定されていない場合、cakeは新規追加すると解釈をするようです。

最後に
/app/views/posts/index.thtmlに編集画面へのリンクを追加します。


やっぱり自分でがつがつ書かないと覚えない。
もう一個ほどサンプルを勉強してから簡単なアプリを作って
みようと思います。

tag:

date:2008年05月31日 23:50 | COMMENT (0) | TRACKBACK (0)

Trackback

Trackback UR: http://www.phas.jp/mt/mt-tb.cgi/214

Comment

(いままで、ここでコメントしたことがないときは、
コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。
承認されるまではコメントは表示されません。そのときはしばらく待ってください。)