2013-07-02 33 views
0

我正在cakephp 2.x ..我的webapp網址是這樣的http://www.myweb.com/ ..所以在那之後,我將用戶重定向到登錄後啓動頁面..「 http://www.myweb.com/users/gettingstarted」 ......我想要是我想要一個像這樣的網址..蛋糕php設置您的自定義網址

http://www.myweb.com/gettingstarted... 

所以爲了做到這一點我不能讓一個控制器名稱,因爲在CakePHP中gettingstartedü不能創建一個控制器,如果你沒有在你的分貝類似的表名..希望你得到這..可能是有可能的..但不知道我該怎麼做到這一點..

+0

你*可以*創建一個控制器,如果你在db中沒有類似的名字...但是忽略它,你能更好地解釋你想要的嗎?我知道你想要一個'http://www.myweb.com/gettingstarted ...'url,但是'getting start',你想讓它成爲另一個控制器中的一個動作嗎?像'UsersController-> gettingstarted'。請澄清。 – Nunser

+0

@Nunser對不起,正是......我想要的是我想要一個像這樣的網址「com/gettingstarted」..爲了實現這個..我必須做一個控制器,我不想...我有一個功能名稱在一些其他控制器開始...我想調用該函數沒有控制器名稱進來的url ...例如,我想重定向像這樣$ this-> redirect $ this-> redirect('/ gettingstarted'); – hellosheikh

回答

0

routes.php添加規則(最好是之前任何其他規則)

//this will send www.web.com/gettingstarted to UsersController->gettingStarted() 
Router::connect('/gettingstarted', 
       array('controller' => 'users', 'action'=>'gettingstarted')); 
//this is the default route for www.web.com 
Router::connect('/', array('controller' => 'users', 'action' => 'index')); 

隨着那我假設你有你的UsersController一個gettingstarted行動。哦,而且你沒有將變量傳遞給動作。否則,這個規則會有點不同。

對於所有這些「網址更改」,請閱讀Routes doc。知道如何管理網址可能很有用。

編輯 如果你希望用戶成功登錄後,被重定向到入門頁面,改變你的UsersController的登錄操作

public function login() { 
    //all your login actions 
    //if user is logged in 
    $this->redirect(array('controller'=>'users', 'action'=>'gettingstarted')); 
} 

這將您重定向到www.web.com/gettingstarted

+0

so yup ..你有我..現在接下來的問題是我應該替換這個路由器::連接('/',數組('控制器'=>'用戶','行動'=>'索引')); ..因爲當我這樣做www.web.com ..我來到我的索引頁面,由於這個網址..我應該用它替換它..我不認爲這是一個好主意..因爲在索引頁面我有一個登錄頁面 – hellosheikh

+0

這真的取決於你希望你的網站是如何(一個真正與其他問題沒有太大關係)。如果您希望「入門」頁面成爲用戶在進入「www.web.com」時看到的第一頁,那麼您應該更換它。但我個人不推薦它,「入門」通常是您在索引上顯示的內容(作爲鏈接),以使網站更加用戶友好,而不是每個人都看到的強制選項,他們是否已經知道如何獲取是否開始。 *但是!*不要完全刪除該規則,如果您刪除該規則,蛋糕將不知道如何處理「www.web.com」。 – Nunser

+0

好的謝謝你的提示..所以你是說,登錄後我不能讓這樣的網址'www.web.com/gettingstarted'..好吧..現在只有當我做一個新的控制器這個和然後把所有的功能放在索引函數中......但問題是..蛋糕扔錯誤說你沒有在你的數據庫名稱中的表入門​​ – hellosheikh