Yii2:根据权限隐藏搜索结果
在我的表格中,我有:Yii2:根据权限隐藏搜索结果,yii2,rbac,Yii2,Rbac,在我的表格中,我有: PRODUCT id_product name status 其中状态采用以下值: 1 (Active) 2 (Inactive) 3 (Archived) 在产品索引视图中,我希望用户根据权限查看某些状态。例如: 管理员查看状态为1、2和3的记录 主持人意见:1和2 用户视图:1 我该怎么做?我有什么选择?您可以在搜索模型中添加条件(我猜您有一个ProductSearch.php文件),以便根据用户角色过滤结果 我从未使用过Yii的RBAC,但我认为您有一种获取用
PRODUCT
id_product
name
status
其中状态采用以下值:
1 (Active)
2 (Inactive)
3 (Archived)
在产品索引视图中,我希望用户根据权限查看某些状态。例如:
- 管理员查看状态为1、2和3的记录
- 主持人意见:1和2
- 用户视图:1
我该怎么做?我有什么选择?您可以在搜索模型中添加条件(我猜您有一个ProductSearch.php文件),以便根据用户角色过滤结果 我从未使用过Yii的RBAC,但我认为您有一种获取用户角色的方法,如下所述: 因此,在您的搜索模型中,我会在网格过滤条件之后添加一个或多个条件:
if($isUser) {
$query->andFilterWhere([
'status' => 1,
]);
}
elseif($isModerator) {
$query->andFilterWhere(['or',
['status' => 1],
['status' => 2]
]);
}
如果您需要,我可以给您一个更详细的答案。您可以在搜索模型中添加条件(我猜您有一个ProductSearch.php文件),以便根据用户角色过滤结果 我从未使用过Yii的RBAC,但我认为您有一种获取用户角色的方法,如下所述: 因此,在您的搜索模型中,我会在网格过滤条件之后添加一个或多个条件:
if($isUser) {
$query->andFilterWhere([
'status' => 1,
]);
}
elseif($isModerator) {
$query->andFilterWhere(['or',
['status' => 1],
['status' => 2]
]);
}
如果您需要,我可以给您一个更详细的答案。显然,请注意$isUser和$isModerator是假的变量,可以让您理解其含义。您可以在获得角色值后检查它。显然,请注意$isUser和$isModerator是假的变量,以使您理解其含义。您可以在获得角色值后检查它。