我有用户页面。在索引视图中,它们都具有ID的超链接,因此它们正在将ID发送给模型。当您按链接时,将加载用户视图,URL变为
/site/users/1
但是我想要的是URL不是用户ID,而是用户Username,例如
/site/users/Alex
我该怎么做 ?这是我的_view
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
控制器
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
您将需要修改以下文件:-
main.php(配置)
"urlManager" => array(
"rules" => array(
"/site/users/<name:[\w\_]>" => "/site/users/view",
//All the other rules here...
)
)
控制器
public function actionView($name){
$mdoel = User::model()->findByAttributes(array(
"username" => $name
));
if($model){
$this->render("view", array(
"model" => $model
));
}
}
不论您在哪里放置链接,都按如下所示进行链接:-
<?php echo CHtml::link(CHtml::encode($data->id), array("view", "name" => $data->username)); ?>
更新 :-
尝试使用以下语法:
<?php echo Chtml::link(CHtml::encode($data->id), $this->createUrl('view', array('name'=>$model->username))); ?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句