我有一个超级管理员,可以创建用户并为每个用户分配特定的位置。这存储在一个简单的表中,我们在其中获取用户的 ID 和位置的 ID。
然后,我有一张客户表。每个客户端还有一个名为 loc_id 的位置。如何过滤,以便在 Gridview 中用户只能看到居住在用户有权查看的位置的客户端(用户是一种可以在其管辖范围内操作客户端数据的管理员)?
我通过
$userId = \Yii::$app->user->identity->id
然后找到他可以查看的位置
$userLocation = Userlocations::find()-where(['user_id' => $userId])->all();
但是现在如何将它应用到具有搜索模型和 DataProvider 的标准 Gridview,以便我仍然可以按其他属性对 GridView 进行过滤和排序?
$searchModel = new AsociatiiSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);