うまいタイトルが思いつかなかった。。
どういうことかというと
全体レイアウトに Element を使っていたりして
Element に「同じ」動的データを渡したくて、かつ中身はファイルごとに替えたい場合
毎回 controller を作って view を作るのはだるい!!!
ということです。
結果から書くとこう
//引数はファイル名に
class RyousansController extends AppController
{
function index($name=null){//Element へのデータ
$this->set(“”,””);・・・・適当に共通処理・・・・
//ここで吐き出す view を指定
$this->render($name);
}
}
これでどうなるかというと
http://www.hogehoge.com/ryousan/index/omake/
でアクセスすると
/views/ryousans/omake.tpl
を読みに行くわけです。
view だけ量産すれば
一切 controller をいじらなくても
omake1.tpl -> http://www.hogehoge.com/ryousan/index/omake1/
omake2.tpl -> http://www.hogehoge.com/ryousan/index/omake2/
omake3.tpl -> http://www.hogehoge.com/ryousan/index/omake3/
omake4.tpl -> http://www.hogehoge.com/ryousan/index/omake4/
omake5.tpl -> http://www.hogehoge.com/ryousan/index/omake5/
と view にファイルを突っ込むだけでURLが自動生成されます。
DEBUGモードが0になっていれば
view フォルダにファイルがないURLは404で返されます。
こうしておいて例えばヘッダフッタとかが共通のヘルプページやサイトマップとかは
いちいち controller を作らずに
help.tpl,sitemap.tpl を作って
ryousans/ の中に入れてごりごり書いちゃえばいいだけになります。
一つの controller で view を量産!!