一個網址我想轉換一個URL這是格式「美化」 Yii中
路徑/要/我的/應用/ Controller_action/ID/2
到
路徑/要/我的/應用/ Controller_action/ID/User_corresponding_to_id_2
我已經š來自Yii的教程,但它不能幫助我完成任何事情。誰能幫我這個?
編輯:我也想知道,如果這件事情甚至可能在POST情況下,即我將只有路徑/到/我的/應用程序/ Controller_action在URL中。
一個網址我想轉換一個URL這是格式「美化」 Yii中
路徑/要/我的/應用/ Controller_action/ID/2
到
路徑/要/我的/應用/ Controller_action/ID/User_corresponding_to_id_2
我已經š來自Yii的教程,但它不能幫助我完成任何事情。誰能幫我這個?
編輯:我也想知道,如果這件事情甚至可能在POST情況下,即我將只有路徑/到/我的/應用程序/ Controller_action在URL中。
在您的用戶模型添加到getURL方法
public function getUrl()
{
return Yii::app()->createUrl('controller/action', array(
'id'=>$this->id,
'username'=>$this->username,
));
}
添加以下規則urlManager
成分config/main.php
'controller/action/<username:.*?>/<id: \d+>'=>'controller/action'
和使用模式url
虛擬屬性到處
嘿,這個東西有用,但我需要更多的說明。有一件事是,現在我需要添加用戶名作爲我的行動功能的參數!另外,你能告訴我如何創建一個類似的東西,當我** POST **一個頁面,並沒有得到它。 –
我沒有得到你的意思是POST一頁。請澄清,如果可能的話用一個例子來解釋 – dInGd0nG
我的意思是表單操作 - GET和POST。我認爲這個URL重寫僅適用於GET(即在URL中傳遞參數)。我錯了嗎? –
dInGd0nG是在正確的軌道上,但如果我und如果你想正確地使用實際的用戶名而不是ID,那麼對嗎?
在Yii中並不難。我假設這裏爲簡單起見,控制器是用戶,操作是視圖。
您的用戶控制器:
public function actionView($id)
{
if (is_numeric($id))
$oUser = User::model()->findByPk($id);
else
// Luckily Yii does parameter binding, wouldn't be such a good idea otherwise :)
$oUser = User::model()->findByAttributes(array('username' => $id));
...
}
你urlManager配置:
'user/view/<id: \w+>' => 'user/view',
或者更一般地說:
'user/<action: \w+>/<id: \w+> => 'user/<action>',
在視圖中生成一個用戶網址:
$this->createUrl('user/view', array('id' => $oUser->username));
您是否有理由需要使用Yii來進行重寫?使用.htaccess重寫規則會更簡單。 http://roshanbh.com.np/2008/03/url-rewriting-examples-htaccess.html – Gregology
事情就是它的一切動態。如果我必須將path/user =「someName」轉換爲path/someName,我會很樂意將它寫入.htaccess文件。 –
關於你的編輯:真的不要這樣做。只有在數據庫中的數據發生變化時纔會使用POST。它還會向訪問者顯示一個「你確定要再次發佈表單」的選項。 – Blizz