2009年1月26日月曜日

CakePHPで pagesを使う

基本
CakePHPでContorllerを使うまでもないページ(静的な表示が中心のページ)を作りたい場合、pagesを使うと便利。
(例:サイトの紹介ページ、利用規約、などなど。)
views/pagesの中にxxxx.ctpというファイル名でVIEWテンプレートを入れておけば、/pages/xxxx というURLでアクセスできる。
Controllerは作成しなくてOK。
(config/routes.phpに下記設定があるため。PagesControllerはCakeの標準機能として装備されている。)

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
このpages内のVIEWテンプレートにもlayoutsは適用される。


タイトルタグをセットする
VIEWテンプレート内で、<?php $this->pageTitle = 'タイトル' ?> とすればタイトルタグをセットできる。


pagesからModelを呼び出す
pagesのVIEWテンプレートの中でimportする。
App::import('Model', 'Member');
後は普通のPHPクラスと同じようにnewすれば使えた。


セキュリティ上の注意
デフォルトでは /pages/home というURLで内部情報を表示してしまう。
pagesを使わない場合は、config/routes.phpのpagesへの設定を削除すればOK。
pagesを使う場合は、view/pagesにhome.ctpを作ればとりあえず害は無くなる。


参考:
 CakePHP 静的なページの作成方法 | Sun Limited Mt.
 CakePHP 公開する時はデバッグ情報を出さない | Shin x blog

0 件のコメント:

ブログ アーカイブ

tags