yii2 controller 大小寫 Unable to resolve the request "site/error"


我在本地用yii2創建了一個控制器TTeamController.php,輸入localhost/v1/tteam能夠正常訪問,但是當我復制了相應文件上傳到服務器上之后,訪問的時候卻提示以下錯誤

An Error occurred while handling another error:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/error".' in D:\workspace\hdapi\vendor\yiisoft\yii2\base\Module.php:461
Stack trace:
#0 D:\workspace\hdapi\vendor\yiisoft\yii2\web\ErrorHandler.php(85): yii\base\Module->runAction('site/error')
#1 D:\workspace\hdapi\vendor\yiisoft\yii2\base\ErrorHandler.php(109): yii\web\ErrorHandler->renderException(Object(yii\web\NotFoundHttpException))
#2 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\NotFoundHttpException))
#3 {main}
Previous exception:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "v1/tteam".' in D:\workspace\hdapi\vendor\yiisoft\yii2\base\Module.php:461
Stack trace:
#0 D:\workspace\hdapi\vendor\yiisoft\yii2\web\Application.php(84): yii\base\Module->runAction('v1/tteam', Array)
#1 D:\workspace\hdapi\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 D:\workspace\hdapi\api\web\index.php(19): yii\base\Application->run()
#3 {main}

Next exception 'yii\web\NotFoundHttpException' with message '欏甸潰鏈壘鍒般€�' in D:\workspace\hdapi\vendor\yiisoft\yii2\web\Application.php:96
Stack trace:
#0 D:\workspace\hdapi\vendor\yiisoft\yii2\base\Application.php(375): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 D:\workspace\hdapi\api\web\index.php(19): yii\base\Application->run()
#2 {main}

詢問之后得知,我本地的yii跟服務其上的yii版本不是一個

按照錯誤提示,找到module.php,這文件中有個拼接控制器文件名稱的方法:createControllerByID、

對比兩個版本的module.php之后,證實這兩個方法確實有不同

服務其上的createControllerByID

本地的createControllerByID

 

標記的就是這兩個方法不同的地方。因為用到了ucwords這個方法,將輸入的tteam的首字母大寫了,

也就是說服務器上的版本要找的控制器文件的名稱是Tteamcontroller,

get_class($controller)的值是TTeamcontroller,而$className的值是Tteamcontroller,兩個不相等,所以返回的是null

而本地的沒有對比,直接返回的是$controller;

所以要解決服務其上的錯誤就需要把TTeamcontroller改為Tteamcontroller

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM