ユーザーを作成し、各ユーザーに特定の場所を割り当てることができるスーパー管理者がいます。これは、ユーザーの ID と場所の ID を取得する単純なテーブルに格納されます。
次に、クライアントのテーブルがあります。各クライアントには、loc_id という名前の場所もあります。Gridview で、ユーザーが表示権限を持っている場所に住んでいるクライアントのみを表示できるようにするにはどうすればよいですか (ユーザーは、管轄内のクライアントのデータを操作できる一種の管理者です)。
ユーザーIDを取得します
$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,
]);