Yii中的控制url:controller/action/id到/id

Yii中的控制url:controller/action/id到/id,url,yii,Url,Yii,我们可以在Yii中以控制器/action/id到/id的格式显示url吗?另外,一个主要问题是,我只需要在特定的控制器/操作上执行此操作 例如:如果我有/user/post/ujjwal,那么我只需要显示/ujjwal。当我拥有/image/display/ujjwal时,它就可以保持原样了 我已经阅读了Yii中的url管理,并理解其中显示的内容。但是我不知道如何根据控制器/操作控制url 任何帮助都将不胜感激 谢谢, Ujjwal在config/main.phptry 'urlManager'

我们可以在Yii中以
控制器/action/id
/id
的格式显示url吗?另外,一个主要问题是,我只需要在特定的控制器/操作上执行此操作

例如:如果我有
/user/post/ujjwal
,那么我只需要显示
/ujjwal
。当我拥有
/image/display/ujjwal
时,它就可以保持原样了

我已经阅读了Yii中的url管理,并理解其中显示的内容。但是我不知道如何根据
控制器/操作
控制url

任何帮助都将不胜感激

谢谢,
Ujjwal

config/main.php
try

'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
                        'rules'=>array(
                          'user/post/<user:\w+>'=>'<user>', //this should be the very first rule
                           //other rules 
                         ),
            ),
        ),
'urlManager'=>数组(
“urlFormat'=>“路径”,
'showScriptName'=>false,
'规则'=>数组(
“user/post/”=>“”,//这应该是第一条规则
//其他规则
),
),
),

在我看来,您不能将一个自定义URL映射到两个或多个URL路径或操作。例如,当有人访问
/my_username
时,将重定向到
/user/post/ujjwal
/image/display/ujjwal
。由于此模式/规则,应用程序将被混淆

因此,我建议您将
/image/display/ujjwal
更改为其他模式/规则。比如
/my\u用户名/图像

我使用
username
作为所选用户名的查询字符串

'components'=>array(

            .....

            'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                '<username:[\w.]+>'=>'user/post',
                '<username:[\w.]+>/display'=>'image/display',
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),

            ....
“组件”=>阵列(
.....
“urlManager”=>数组(
“urlFormat'=>“路径”,
'规则'=>数组(
''=>'用户/帖子',
“/display”=>“image/display”,
“/”=>“/视图”,

“/

你想做的事情是可以做到的,但是有一些副作用。如果你把它放在
config/main.php
中:

        'urlManager'=>array(
        'urlFormat'=>'path',
        'showScriptName'=>false,
        'rules'=>array(
            'image/<action>/<username>' => 'image/action/username',
            '<username>' => 'user/post/username',
            ),
        ),
'urlManager'=>数组(
“urlFormat'=>“路径”,
'showScriptName'=>false,
'规则'=>数组(
“image/”=>“image/action/username”,
''=>'用户/帖子/用户名',
),
),

先把你所有更具体的规则放在第一位,然后作为一个单元的所有其他内容都会转到
/user/post/something

你在其中一个链接上评论说yii文档不是你问题的答案。请发布配置文件中与url格式相关的摘录。我的意思是我找不到可能的内容我的问题几乎可以解决。或者可能是我没有很好地理解它,以至于无法将它与我的问题联系起来…这是另一种方法-面向客户端的URI首先出现在数组中,然后是控制器/操作对。此外,将最一般的规则放在顶部将确保不会达到任何其他规则。我认为您的将单词specific与general混淆。
user/post/
只有在控制器的
user
操作有word参数时才会与该操作匹配。是的,但OP不希望以这种方式访问/user/post操作-他只希望参数名称出现在URL中。是的,我只希望用户名映射到user/profile/username,然后正如aslingga所建议的,它非常有效。感谢你们的帮助!!嗯…为什么这个答案没有被接受,不管怎样,我只想为一个特定的url做一些像@ujwalprajapati这样的事情,而这种指定规则的方法起到了作用…谢谢你们。这很有帮助,我遵循了你们的指示。它很有效!!