访问控制器操作时未显示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规则声明的一部分。注释不用于扩展讨论;此对话已结束。