groupBy در dataProvider کنترلر
در صورتی که بخواهیم شرطی در اکشن index در کنترلر قرار بدهیم که این شرط را فقط در این اکشن لازم داریم به صورت زیر عمل می کنیم.
توجه داشته باشید که شما در ModelSearch می توانید شرط های سراسری را اعمال نمایید.
ActiveDataProvider دارای پروپرتی ای با نام $query است که شما می توانید به آن دسترسی پیدا کنید و شروط خود را اعمال کنید.
برای مثال :
->select() ->where() ->groupBy() . . .
$dataProvider->query->where(['teacher_id' => $user_id])->groupBy('cours_date');
در نهایت در اکشن خود کد زیر را خواهیم داشت:
public function actionTeacherindex() { $user_id = Yii::$app->user->id; $searchModel = new TeachertimeSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $dataProvider->query->where(['teacher_id' => $user_id])->groupBy('cours_date'); return $this->render('teacherindex', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); }