web\UrlManager $rules

$rules public property

The rules for creating and parsing URLs when $enablePrettyUrl is true. This property is used only if $enablePrettyUrl is true. Each element in the array is the configuration array for creating a single URL rule. The configuration will be merged with $ruleConfig first before it is used for creating the rule object.

A special shortcut format can be used if a rule only specifies pattern and route: 'pattern' => 'route'. That is, instead of using a configuration array, one can use the key to represent the pattern and the value the corresponding route. For example, 'post/<id:\d+>' => 'post/view'.

For RESTful routing the mentioned shortcut format also allows you to specify the HTTP verb that the rule should apply for. You can do that by prepending it to the pattern, separated by space. For example, 'PUT post/<id:\d+>' => 'post/update'. You may specify multiple verbs by separating them with comma like this: 'POST,PUT post/index' => 'post/create'. The supported verbs in the shortcut format are: GET, HEAD, POST, PUT, PATCH and DELETE. Note that mode will be set to PARSING_ONLY when specifying verb in this way so you normally would not specify a verb for normal GET request.

Here is an example configuration for RESTful CRUD controller:

[
    'dashboard' => 'site/index',

    'POST <controller:[\w-]+>s' => '<controller>/create',
    '<controller:[\w-]+>s' => '<controller>/index',

    'PUT <controller:[\w-]+>/<id:\d+>'    => '<controller>/update',
    'DELETE <controller:[\w-]+>/<id:\d+>' => '<controller>/delete',
    '<controller:[\w-]+>/<id:\d+>'        => '<controller>/view',
];

Note that if you modify this property after the UrlManager object is created, make sure you populate the array with rule objects instead of rule configurations.

public array $rules = []
doc_Yii
2016-10-30 17:16:57
Comments
Leave a Comment

Please login to continue.