CakePHPの[admin routing]を調べてみました。

■環境

  • OS: CentOS on VirtualBox
  • CakePHP2.3.10
  • http://localhost/cake23/ でCakeアプリにアクセスできるものとします

■まとめと所感

  • [admin routing]は思ってた機能と少し違った。
  • URLに[admin]などのPrefixを挟んだ別ルートを作れる。
  • [admin]という文字列は自由に変更可能。
  • controllerにはadmin_index()などのメソッドを作る。
  • viewでは、admin_index.ctpなどでファイルを作る。
  • 使い道はありそう

■まずはScaffoldingで

  • 設定
    • app/Config/core.php の一部を編集する
    • 以下を追加(元々コメントアウトされている)
    • Configure::write('Routing.prefixes', array('admin'));
      
    • ターゲットのコントローラ(ここれはPetsController.phpとする)で以下を追加する
    • public $scaffold = 'admin';
      
  • 表示
    • http://localhost/cake23/admin/Pets で表示される
    • http://localhost/cake23/Pets だと[Missing Method]となる

■Bakeする

  • 設定
    • 以下のコマンドでコード作成する
    • 		cd /path/to/workspace/cake23/app
      		../lib/Cake/Console/cake bake model Pet
      		../lib/Cake/Console/cake bake controller --admin Pet
      		../lib/Cake/Console/cake bake view Pet
      
  • 表示
    • http://localhost/cake23/admin/Pets で表示される
    • http://localhost/cake23/Pets だと[Missing Method]となる