.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
10 人のユーザが現在オンラインです。 (9 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 10

もっと...

.
.リンク集

メイン
   CakePHP コントローラ(Controller)
     プレフィックスルーティング時のpages_controllerの挙動
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mori
投稿日時: 2009-4-10 23:14
Baker ユーザ
登録日: 2008-12-8
居住地:
投稿: 33
プレフィックスルーティング時のpages_controllerの挙動
http://xxxxxxx/pages/menu/

とやるとpages_controller.phpのdisplayアクションが呼ばれて、
/app/views/pages/menu.ctpが表示されると思うんですが、

adminのプレフィックスルーティングを有効にして、

http://xxxxxxx/admin/pages/menu/

とすると、admin_displayを見に行って、
「Missing Method」のエラーになってしまいます。
pages_controller.phpをapp側に持ってきて、
admin_displayを実装するのでしょうか?

例えば管理画面でDBを使わないメニュー画面をを
これで表示しようと思ったのですが・・・
他に良い方法があればご教授お願いします。

regen
投稿日時: 2009-4-11 12:48
Baker スタート
登録日: 2008-6-11
居住地:
投稿: 5
Re: プレフィックスルーティング時のpages_controllerの挙動
こんにちは。
私も同じようなことを実現したいと思って、PagesControllerを継承して新しいコントローラーを作ることで対処しました。

controllers/pages_ex_controller.php

<?php
App
::import('Controller''Pages');

class 
PagesExController extends PagesController {

    function 
admin_display() {
        
$args func_get_args();
        
call_user_func_array(array($this'parent::display'), $args);
    }

}
?>



そして、ルーティングで「'controller' => 'pages'」となっているところを「'controller' => 'pagesEx'」にします。

こうすると「$args = func_get_args();」の後でページごとに分岐してヘルパーを追加したりコンポーネントを使ったりなど処理を加えることもできます。

スマートではないかもしれませんが・・・
mori
投稿日時: 2009-4-14 16:09
Baker ユーザ
登録日: 2008-12-8
居住地:
投稿: 33
Re: プレフィックスルーティング時のpages_controllerの挙動
返事ありがとうございます!
やってみます!
news
投稿日時: 2009-4-22 9:49
Cake 職人
登録日: 2007-4-4
居住地:
投稿: 1277
Re: プレフィックスルーティング時のpages_controllerの挙動
英語記事。

actionshrimp.com
CakePHP: PagesController with Admin Routing
http://www.actionshrimp.com/2009/04/cakephp-pagescontroller-with-admin-routing/


<?php
Router
::connect('/admin/pages/*', array('controller' => 'pages''action' => 'display''admin' => true));
?>


としてから、function admin_display()を作っています。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .