Yii2:根据权限隐藏搜索结果

Yii2: Hide search results based on permission

在我的 table 我有:

PRODUCT
id_product
name
status

其中状态采用以下值:

1 (Active)
2 (Inactive)
3 (Archived)

在产品索引视图中,我希望用户根据权限查看某些状态。示例:

我该怎么做?我有什么选择?

您可以在搜索模型中添加条件(我猜您有一个 ProductSearch.php 文件),以便根据用户的角色过滤结果。

我从未使用过 Yii 的 RBAC,但我想您有一种获取用户角色的方法,如下所述:

因此,在您的搜索模型中,我会在网格过滤条件之后添加一个或多个条件:

if($isUser) {     
    $query->andFilterWhere([
        'status' => 1,
    ]);
}
elseif($isModerator) {
    $query->andFilterWhere(['or',
       ['status' => 1],
       ['status' => 2]
    ]);
}

如果你需要的话,我可以给你更详细的答案。