如何在yii2的下拉列表中显示特定记录

时间:2017-10-11 13:42:33

标签: php yii2 dropdown yii2-basic-app

我正在使用yii2 basic。

我有一个auth-item表,其中包含2个角色,剩下的是权限:

  1. admin
  2. fieldofficer
  3. createGroup
  4. updateGroup
  5. 的ViewGroup
  6. deleteGroup
  7. 此处管理员 fieldofficer 角色,其他权限

    现在在auth_assignment crud中,在选择item_name时,我的下拉列表中填充了所有auth_item。

    但我想在下拉列表中只显示admin和fieldofficer?

    如何做到这一点?

2 个答案:

答案 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 ---']) ?>