yii2模板的Web组件

1.0.0 2019-09-19 09:23 UTC

This package is auto-updated.

Last update: 2024-09-19 21:06:26 UTC


README

将主控制器从Web应用移至组件,包含标准化的过滤器和行为、CRUD操作以及常见操作,如切换实体的活动状态或更改状态。

将基本的行为过滤设置移至Web组件的控制器中,以控制对动作的访问。

安装

要安装组件,需要在 composer.json 文件中添加以下行

"require": {
    "oleg-chulakov-studio/yii2-web": "~1.0.0"
}

或者执行以下命令

composer require oleg-chulakov-studio/yii2-web

访问控制

默认情况下,Yii2使用两种行为来控制对每个控制器的访问。配置 VerbFilterAccessControl 过滤器访问规则需要大量的规则。因此,通过创建基本访问规则集简化了此配置。

public function accessRules()
{
    return [
        'index'   => $this->createAccess('get', true),
        'view'    => $this->createAccess('get', true, '@'),
        'create'  => $this->createAccess('post', true, '@'),
        'update'  => $this->createAccess('put, patch', true, '@'),
        'delete'  => $this->createAccess('delete', true, '@'),
        'options' => $this->createAccess(),
    ];
}

访问方法和访问规则可以有以下两种写法

...
'update'  => $this->createAccess('put, patch', true, ['admin', '@']),
...
  • 'post, get' - 对动作的访问方法,由逗号分隔的元素列表
  • ['admin', '@'] - 对动作访问的规则,元素列表

如果需要扩展不同于标准的行为,可以重写生成过滤器配置的方法。

AccessControl过滤器配置

创建 AccessControl 过滤器访问级别设置的配置由 accessBehavior 方法负责,该方法接收访问规则列表 $rules 并返回行为配置。

VerbFilter过滤器配置

创建 VerbFilter 过滤器访问方法的配置由 verbsBehavior 方法执行,该方法接收带有访问方法的动作列表 $actions 并返回行为配置。