人生のプチ美学を教えてください!!

cakePHP初心者です(まだはじめて数時間くらい)

で、cookbookにそってサンプルブログを組んでいるのですが、

http://book.cakephp.org/2.0/ja/getting-started.h …
のとおり、

Postモデルに
class Post extends AppModel {
   public $validate = array(
      'title' => array(
         'rule' => 'notEmpty'
      ),
      'body' => array(
         'rule' => 'notEmpty'
      )
   );
}

(↑タブを全角空白4文字に変換してます)

と入れてsaveしたものの、

title,bodyを空で投稿しても、エラー表示されず投稿できてしまいます
(投稿一覧にも表示されます)

FWを使わないで自力で組むなら、自分なりにエラーを見つけられるのですが、
まだcakePHPになれていないため、
このバグの原因を追求するためになにからはじめたらいいのかわかりません。

どなたかお教えいただけないでしょうか?

よろしくお願い申し上げます。

A 回答 (1件)

controller側のコードがおかしいのではないでしょうか。


可能であればcontroller側のコードを貼り付けてみてください。

この回答への補足

ありがとうございます。
以下に /app/Controller/PostsController.php を貼り付けます
(タブは全角空白4文字に変換しています)
ヘルプいただければ幸いです。
なお、今後自分で解決できるようになるために、
なぜ、MVCのうちVでなくCがおかしいと推測なさったか教えていただけますか?
(View側だけがおかしいなら、見た目だけの問題に過ぎないはずだからでしょうか?)
よろしくお願いします。

<?php
//File: /app/Controller/PostsController.php
class PostsController extends AppController {
    public $helpers = array('Html' , 'Form');

    public function index(){
        $this->set('posts', $this->Post->find('all'));
    }

    public function view($id = null){
        if(!$id) {
            throw new NotFoundException(__('Invalid post'));
        }

        $post = $this->Post->findById($id);
        if(!$post){
            throw new NotFoundException(__('Invalid post'));
        }
        $this->set('post', $post);
    }


    public function add() {
        if ($this->request->is('post')){
            $this->Post->create();
            if ($this->Post->save($this->request->data)){
                $this->Session->setFlash(__('Your post has been saved.'));
                return $this->redirect(array('action' => 'index'));    
            }
            $this->Session->setFlash(__('Unable to add your post.'));    
        }
    }


}

補足日時:2014/07/07 17:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!