我正在使用yii2 basic。
我有一个auth-item表,其中包含2个角色,剩下的是权限:
此处管理员和 fieldofficer 是角色,其他权限
现在在auth_assignment crud中,在选择item_name时,我的下拉列表中填充了所有auth_item。
但我想在下拉列表中只显示admin和fieldofficer?
如何做到这一点?
答案 0 :(得分:0)
您需要在type-attribute上过滤下拉列表。
您的auth_item表有一个名为type的列/属性,等于1或2. 1表示角色,2表示权限。请检查相应的型号\ yii \ rbac \ Item,常量为TYPE_ROLE和TYPE_PERMISSION。
答案 1 :(得分:0)
在AuthItem
表中:
use yii\rbac\Item;
public static function getRoleList()
{
return self::find()->select('name')->where(['type' => Item::TYPE_ROLE])->indexBy('name')->column();
}
下拉
<?= $form->field($modelName, 'field_name')->dropDownList(AuthItem::getRoleList(), ['prompt' => '--- Select Role ---']) ?>