访问控制器操作时未显示yii2 url

访问控制器操作时未显示yii2 url,yii2,Yii2,我创建了一个控制器函数,如 public function actionRateTicket($id){ } urlManager具有以下配置 'urlManager'=>[ 'class'=>'yii\web\UrlManager', //禁用index.php 'showScriptName'=>false, //禁用r=路由 'enablePrettyUrl'=>true,'enableStrictParsing'=>true, '规则'=>数组( “/”=>“/视图”, “/,(tic

我创建了一个控制器函数,如

public function actionRateTicket($id){
}
urlManager具有以下配置

'urlManager'=>[
'class'=>'yii\web\UrlManager',
//禁用index.php
'showScriptName'=>false,
//禁用r=路由
'enablePrettyUrl'=>true,'enableStrictParsing'=>true,
'规则'=>数组(
“/”=>“/视图”,
“/,(ticket是控制器的名称(TicketController.php)),它显示
未找到(#404)
错误

这里有什么问题? 我可以使用单个驼峰大小写字符访问所有控制器操作,如actionView、actionEdit等,但actionRateTicket无法访问。如果actionRateTicket重命名为actionRate,则它可以工作

我的控制器是这样的


web文件夹的My.htaccess为

重新编写引擎打开
#如果存在目录或文件,请直接使用它
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
#否则将其转发到index.php
RewriteRule.index.php

您需要在访问行为中指定操作

'access' => [
                    'class' => AccessControl::className(),
                    'only' => ['rate-ticket', 'index','view','update','delete','newticket' ],
                    'rules' => [
                            [
                                    'actions' => ['rate-ticket', 'index','view','update','delete','newticket', ],
                                    'allow' => true,
                                    'roles' => ['@'],
                            ],

                    ],
            ],

更改
actionRateticket
的操作名称,调用应为rateticket

尝试使用以下行:

use yii\helpers\Url;

我相信这是因为Yii使用破折号而不是驼峰格的奇怪方式。尝试将规则从
更改为
,因为破折号不是单词字符


我找不到默认规则来验证它们是否也检查破折号,但这应该有效。

yii2对camel-case-controller使用更为SEO友好的url。所有camel-case都使用破折号转换为小写,如下所示:

UserProfileController
index.php?r=user-profile

我在控制器中看不到
动作率
。我尝试了这个,但没有成功,仍然显示404error@scaisEdge他写道他用actionRate试过了。我认为,
意味着规则适用于AccessControl实例,而不是控制器。是这样吗?不确定……我假设actionRate确实有效,但我这不是AccessControl规则声明的一部分。注释不用于扩展讨论;此对话已结束。