簡體   English   中英

在yii2中定義路由規則的語法

[英]Syntax for defining rules for routes in yii2

我使用Yii2漂亮的網址,想玩弄我定義的規則UrlManager ,但沒有找到任何文件,我怎么能在定義變量'pattern' => 'route'規則集。 找到了一些例子

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                "home" => "site/index",
                "login" => "site/login",
                "sign-up" => "site/sign-up",
                '<controller:[\w-]+>/<id:\d+>' => '<controller>/view',
            ],
        ],

但是:[\\w-]+:\\d+代表什么呢?

例如,如果我想定義一個模式來指向需要兩個參數的操作,該怎么辦?

class MyController extends Controller{
    ...
    public function actionMyAction($param1, $param2){
        ...
    }
}

現在,我希望網絡用戶在網址欄中輸入www.mysite.com/my-controller/my-action/XY ,其中X$param1的值, Y$param2的值,並使用-作為參數分隔符。

謝謝。

[\\ w-] +和\\ d +是正則表達式,第一個表示任何字母或破折號,重復一次或多次,該部​​分僅表示數字,重復一次或多次。

在規則表達式中,使用<variable name:regex>為路由放置一個占位符,該占位符將解析為傳遞給控制器​​操作的變量。

如果$ param1和$ param2都是數字,則規則應如下所示。

'my-controller/my-action/<param1:\\d+>-<param2:\\d+>' => 'my-controller/my-action',

如果需要字母,請將\\ d交換為\\ w。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM