2012-03-01 9 views
1

は、私がこれを行うにしようとしています:(擬似コード)単に彼らがログインしている場合は、その「ダッシュボード」にリダイレクトしたり、彼らがサインアップしていない場合は登録するためにそれらを頼むCakePHP routes.phpの内部認証、悪い練習ですか?

if(USER IS LOGGED IN){ 
    Router::connect('/', array('controller' => 'films', 'action' => 'index')); 
} else { 
    Router::connect('/', array('controller' => 'users', 'action' => 'register')); 
} 

このIF文をCakePHPのroutes.phpの中に入れるのは悪い習慣ですか?

+0

これは可能性がありRouter :: urlやHtmlHelper :: linkの問題を引き起こすのは、ルートを解析してリンクの作成方法を決定できるためです。 –

+0

私はapp_controllerを使ってこのチェックを行います...またはあなたのpages_controller.phpを拡張して、同じことをインデックスアクションで実行できます。 –

答えて

1

セッションが通常後で開始されるため、問題が発生する可能性があります。 私はそうしているように、いわゆる "OverviewController"の内部でアクション/ビューを切り替えるのはなぜですか?その後、自分のビューを呼び出す

if (UID) { 
    $this->_actionOne(); 
} else { 
    $this->_actionTwo(); 
} 

$this->render('some_view'); 
0

をはい、そうです。 @markはケーキの見解からの理由を指摘していますが、その理由はあなたがモジュールの機能を混ぜているからです。
誰かが映画/インデックスにアクセスして、最初に登録したい場合は、映画コントローラーからリダイレクトします。そのため、リダイレクトまたは登録用のリンクを追加するだけです。

もしあなたがそれを自動的にやりたいのであれば、おそらくrouter_controller(悪い考え方)を作るべきでしょう。 ケーキのソリューションは、映画のコントローラでは、インデックス機能に滞在する..です
しかし、ビューには、デフォルトの出力を表示しませんが、要素を「登録」のいくつかの種類...

関連する問題