您好,登錄后才能下訂單哦!
在Yii1里,URL路由參數中的控制器名稱是可以有大寫字母的(首字母除外),但是到了Yii2的時候(我的版本是2.0.8,其它版本未確認),卻是不支持控制器名稱中包含大寫字母了,我查了下官方文檔,其對于控制器命名的規則如下:
控制器ID遵循以下規則衍生控制器類名:
下面為一些示例,假設yii\base\Application::controllerNamespace控制器命名空間為 app\controllers:
首先,它沒有說控制器是否可以用大寫字母,其次,從它的命名規則中推測,Yii2的作者也許是想用“-”來區分不同的單詞,這樣方便輸入URL(不用按Shift+字母輸入大寫字母了)。
想要把Yii 2改為支持控制器名稱包含大寫字母也很容易,找到module.php,在createControllerByID()函數里,
public function createControllerByID($id) |
修改前的代碼:
preg_match('%^[a-z][a-z0-9\\-_]*$%', $className)
其含義是查找以小寫字母開頭,由小寫字母、數字和“-”符號組成的控制器名稱。
修改后的代碼:
preg_match('%^[a-z][\w0-9\\-_]*$%', $className)
其含義是查找以小寫字母開頭,由任意字母、數字和“-”符號組成的控制器名稱。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。