我需要http://example.com/post/view/id/1网址的规则,该规则将显示为http://example.com/post/post_title。 我想要显示帖子名称或标题,而不是身份证号码。
我的配置如下:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
//'<controller:\w+>/<id:\d+>'=>'<controller>/view',
//'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
//'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
'showScriptName'=>false,
),
答案 0 :(得分:3)
你需要一个看起来像这样的规则
'post/<post_title:\w+>'=>'postController/view/title/<post_title>',
这只是告诉应用程序将以post / post_title开头的请求转发到post控制器的actionView,其中$ _GET ['title']设置为post_title ...
希望有所帮助。
答案 1 :(得分:3)
这是简单的规则
'post/<post_title:\w+>' => 'post/view'
如果需要这样的网址http://example.com/post/some-title-with-hyphen
'post/<post_title:[-\w]+>' => 'post/view'
你需要一个带有$ post_title参数的控制器动作
public function actionView($post_title) {
...
答案 2 :(得分:1)
默认情况下,Yii只会检索帖子ID,如果要显示帖子标题,则需要在自定义Url类规则中访问自己的数据库。 yii教程中有一个名为using-custom-url-rule-classes
的示例