misterspelik/yii2-role-activeform

基于角色的ActiveForm,允许字段根据角色进行编辑或只读

v0.1.0 2018-02-07 10:01 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:57:36 UTC


README

这是一个用于与Yii2表单小部件一起使用的包。使用方法与Yii2 ActiveForm小部件完全相同。

安装

composer require misterspelik/yii2-role-activeform

配置

例如,你有一个模型 User,你想允许 admin 角色编辑所有字段,但不允许 manager 角色编辑姓名字段。为此,你需要定义包含以下内容的 roleRules 方法

public function roleRules()
{
    return [
        [
            'allow' => true,
            'attributes' => ['*'],
            'roles' => ['admin']
        ],
        [
            'allow' => false,
            'attributes' => ['name'],
            'roles' => ['manager']
        ],
    ];
}

使用方法

要将小部件包含到你的表单中,只需使用此命名空间并创建 $form 实例

use misterspelik\widgets\RoleActiveForm;

$form = RoleActiveForm::begin([
   'role' =>  'manager' //current user role
]);

echo $form->field($model, 'name')->textInput(['maxlength' => true]);
// some code here

RoleActiveForm::end();