2012-03-01 39 views
1

我試圖做到這一點:(僞代碼)CakePHP Auth內的routes.php,不好的做法?

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

它只是他們重定向到他們的「儀表盤」,如果他們登錄或要求他們,如果他們沒有報名註冊!

這是不好的做法,在CakePHP的routes.php中有這個IF語句嗎?

+0

這可能也會導致Router :: url或HtmlHelper :: link問題,因爲它們可以解析您的路由以確定如何創建鏈接。 – 2012-03-02 05:17:21

+0

我會使用app_controller來做這個檢查......或者你可以擴展你的pages_controller.php並在索引操作中做同樣的事情。 – 2012-03-02 19:52:31

回答

1

這可能是因爲會議通常被後來開始創建的問題。 爲什麼不像我這樣在所謂的「OverviewController」中切換動作/視圖?

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

,然後調用自己的看法:

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

是的,它是。儘管@mark指出了Cake的觀點,原因是因爲你正在混合模塊功能。
當有人獲取到電影/指數,你要他先註冊,你是從電影控制器重定向他。所以,只需添加重定向或註冊鏈接即可。

如果你仍然希望它自動執行,你可能應該創建一個router_controller(壞主意)。 蛋糕的解決辦法是留在電影控制器,並在索引功能..
但是,在視圖中,不顯示默認的輸出,而是某種「註冊」元素的..