问题描述
目标:每个用户角色看到不同的结果。
最好创建一系列“ifs”,或者有其他好的组织吗?
表auth_item
:
id | name
-------+---------
1 | boss
2 | chef
3 | employe
表contacts
id | name | id_department | contact
-------+-------------+----------------+-------------
1 | John | 2 | 999 999 999
2 | Angela | 4 | 999 452 998
3 | Bea | 5 | 999 678 997
4 | Monique | 4 | 999 125 923
我当前的代码:
public function actionIndex()
{
$searchModel = new Contacts();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
if (\Yii::$app->user->can('employe')) {
$dataProvider->query->andFilterWhere(['id_department' => 4]);
} elseif (\Yii::$app->user->can('chef')) {
$dataProvider->query->andFilterWhere(['id_department' => 2]);
} elseif (\Yii::$app->user->can('boss')) {
$dataProvider->query->andFilterWhere(['IN','id_department',[1,2,3,4,5]]); //all results
}
return $this->render('index',[
'searchModel' => $searchModel,'dataProvider' => $dataProvider,]);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)