Class yii\web\GroupUrlRule

继承yii\web\GroupUrlRule » yii\web\CompositeUrlRule » yii\base\BaseObject
实现yii\base\Configurable, yii\web\UrlRuleInterface
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/web/GroupUrlRule.php

GroupUrlRule 表示在模式和路由中共享相同前缀的 URL 规则的集合.

GroupUrlRule 最好由经常使用模块 ID 作为 URL 规则前缀的模块使用.

例如, 以下代码为admin模块创建一个规则:

new GroupUrlRule([
    'prefix' => 'admin',
    'rules' => [
        'login' => 'user/login',
        'logout' => 'user/logout',
        'dashboard' => 'default/dashboard',
    ],
]);

// 上述规则等同于以下三条规则:

[
    'admin/login' => 'admin/user/login',
    'admin/logout' => 'admin/user/logout',
    'admin/dashboard' => 'admin/default/dashboard',
]

上面的示例假定模式和路由的前缀是相同的. 可以通过分别配置 $prefix$routePrefix 来使它们变得不同.

使用 GroupUrlRule 比直接声明其包含的单个规则更有效. 这是因为 GroupUrlRule 可以通过简单的检查前缀是否匹配来快速确定是否应处理 URL 解析或创建请求.

公共属性

隐藏继承的属性

属性类型描述定义在
$createUrlStatus null|integer 上一次 createUrl() 调用之后 URL 创建的状态. 如果规则未提供有关创建状态的信息, 则未null. 该属性是只读的. yii\web\CompositeUrlRule
$prefix string $rules 中声明的每个规则的模式部分的前缀. yii\web\GroupUrlRule
$routePrefix string $rules 中声明的每个规则的路由部分的前缀. yii\web\GroupUrlRule
$ruleConfig array URL 规则的默认配置. yii\web\GroupUrlRule
$rules array 该复合规则中包含的规则. yii\web\GroupUrlRule

受保护的属性

隐藏继承的属性

属性类型描述定义在
$createStatus integer|null 上一次 createUrl() 调用之后 URL 创建的状态. yii\web\CompositeUrlRule

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
createUrl() 根据给定的路由和参数创建一个 URL. yii\web\GroupUrlRule
getCreateUrlStatus() 返回上一次 createUrl() 调用之后 URL 创建的状态. yii\web\CompositeUrlRule
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\web\GroupUrlRule
parseRequest() 解析给定的请求并返回相应的路由和参数. yii\web\GroupUrlRule

受保护的方法

隐藏继承的方法

方法描述定义在
createRules() 创建应包含在此复合规则中的 URL 规则. yii\web\GroupUrlRule
iterateRules() 遍历指定的规则, 并为每个规则调用 createUrl(). yii\web\CompositeUrlRule

属性详情

$prefix public 属性

$rules 中声明的每个规则的模式部分的前缀.

前缀和模式将用斜线分隔.

public string $prefix null
$routePrefix public 属性

$rules 中声明的每个规则的路由部分的前缀.

前缀和路由将用斜杠分隔.

如果此属性未设置, 则将使用 $prefix 的值.

public string $routePrefix null
$ruleConfig public 属性

URL 规则的默认配置.

当配置规则的相同属性时, 通过 $rules 指定的单个规则配置将优先.

public array $ruleConfig = ['class' => 'yii\web\UrlRule']
$rules public 属性

该复合规则中包含的规则.

有关此属性的格式, 请参阅 yii\web\UrlManager::$rules.

参见:

public array $rules = []

方法详情

createRules() protected 方法

创建应包含在此复合规则中的 URL 规则.

protected yii\web\UrlRuleInterface[] createRules ( )
return yii\web\UrlRuleInterface[]

URL 规则.

createUrl() public 方法

根据给定的路由和参数创建一个 URL.

public string|boolean createUrl ( $manager, $route, $params )
$manager yii\web\UrlManager

URL 管理器.

$route string

路由. 它的开头或结尾不应带有斜杠/.

$params array

参数.

return string|boolean

创建的 URL; 如果指定的规则均不能用于创建此 URL, 则返回false.

init() public 方法

初始化对象.

在使用给定的配置初始化对象之后, 在构造函数的末尾调用此方法.

public void init ( )
parseRequest() public 方法

解析给定的请求并返回相应的路由和参数.

public array|boolean parseRequest ( $manager, $request )
$manager yii\web\UrlManager

URL 管理器.

$request yii\web\Request

Request 组件.

return array|boolean

解析结果. 路由和参数以数组形式返回. 如果为false, 则表示该规则不能用于解析此路由信息.