2008年04月11日
「CakePHPガイドブック」を勝手にフォローアップ
PHPのフレームワークでCakePHPというものがあります。
そのCakePHPの書籍として日本で始めて発売された「CakePHPガイドブック
」という書籍ががあります。私もこの本を読みましたが非常に参考になる一冊です。
しかし、この書籍の中で
「何で動かないの?」
「本と少し動きが違うな・・・」
などの箇所がありました。そのような執筆者とはまったく関係の無い私が気が付いた箇所をいくつかフォローアップしたいと思います。下記を参照ください。
flashメソッドでレンダリングしない
本を読みながらその中に書かれているプログラムを実際に書いて、試している方も多いことでしょう。その中の「chapter 6 コントローラの利用」で「6-3-8 セッションを利用した認証機能の実装例」で認証処理の説明が書かれています。書籍内では認証処理が完了するとBookmarksの一覧が表示されるような感じで書かれていますが、「〇〇〇さん、ようこそ」のページが表示されたままBookmarksの一覧ページへレンダリング(ジャンプ)しない。という方もいることでしょう。
プログラム内は特に間違いも無くusers_controller.phpの「$this->flash()」で「〇〇〇さん、ようこそ」のページは表示されるが、その先に進まない問題です。
実はCakePHPの場合はcore.phpのDEBUGモードが「0」以外の場合はレンダリングをしない仕様になっています。その為、core.phpのDEBUGを0以外のものから0に変更するとレンダリングを行うようになります。
表示されたページの入力項目が足りない
「chapter 7 モデルの利用」の「7-3-3 ブックマーク登録機能の作成」でBookmarksのAddページを作成する章があります。ここではAdd専用のビュー(View)を作って、表示、バリデートチェックを行うことを書いてあります。
しかし、同じようにプログラムを書いてもカウント数を入力する「Count」のインプット欄が表示されないケースが発生する場合があります。もちろん、プログラム上のミスが無いことが前提ですが。
このchapter 7ではchapter 6で作ったブックマーク用のプログラムを変更して使用しているのですが、データベースも同様に変更しています。これによりCakePHPのキャッシュがDB改造(変更)前の物を使用していることからDBの変更で追加した「count」カラムのインプット欄が表示されません。
方法としては「/app/tmp/cache/models/」内のファイルを全て削除すると「Count」のインプット欄が表示されます。
CakePHPガイドブック
posted with amazlet at 08.04.10
安藤 祐介 新原 雅司 堂園 俊郎
毎日コミュニケーションズ
売り上げランキング: 5796
毎日コミュニケーションズ
売り上げランキング: 5796
タグ :CakePHP
Category is コンピュータ本.
<%PingExcerpt%>
<%PingBlogName%> at <%PingDateTime%>