我想转换格式为
的网址路径/到/我的/应用/ Controller_action / ID / 2
到
路径/到/我的/应用/ Controller_action / ID / User_corresponding_to_id_2
我已经看过Yii的this教程,但它并没有帮助我。任何人都可以帮我这个吗?
编辑:我还想知道在POST场景中是否甚至可以使用这个东西,即我只会在URL中使用path / to / my / app / Controller_action。
答案 0 :(得分:1)
在用户模型中添加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
虚拟属性
答案 1 :(得分:1)
dInGd0nG在正确的轨道上,但如果我理解正确,您希望根据实际用户名而不是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));