/** * Lists all Organization models. * @return mixed */ public function actionIndex() { $model = new Organization(); // This is used to search/filter organizations $dataProvider = null; if (isset($_GET['user_id'])) { $user_id = $_GET['user_id']; if ($user_id !== null) { $query = new Query(); $query->from(Organization::tableName()); $query->where(['user_id' => $user_id]); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 5]]); } } else { if (isset($_GET['search_keyword']) && $_GET['search_keyword'] !== null && strlen($_GET['search_keyword']) > 0 || isset($_GET['search_location']) && $_GET['search_location'] !== null && strlen($_GET['search_location']) > 0) { $search_keyword = $_GET['search_keyword']; if ($search_keyword !== null) { $query = new Query(); $query->from(Organization::tableName()); $query->where(['name' => $search_keyword]); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 5]]); } } else { $dataProvider = new ActiveDataProvider(['query' => Organization::find(), 'pagination' => ['pageSize' => 5]]); } } if ($model->load(Yii::$app->request->post())) { $query = new Query(); $query->from(Organization::tableName()); if (!is_null($model->org_type) && is_array($model->org_type)) { $query->where(['org_type' => array_map('intval', $model->org_type)]); } if (!is_null($model->work_domain) && is_array($model->work_domain)) { $query->andWhere(['work_domain' => array_map('intval', $model->work_domain)]); } if (isset($_GET['user_id'])) { $query->andWhere(['user_id' => $_GET['user_id']]); } if (isset($_GET['search_keyword']) && $_GET['search_keyword'] !== null && strlen($_GET['search_keyword']) > 0 || isset($_GET['search_location']) && $_GET['search_location'] !== null && strlen($_GET['search_location']) > 0) { $query->andWhere(['name' => $_GET['search_keyword']]); } $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 5]]); } return $this->render('index', ['model' => $model, 'dataProvider' => $dataProvider]); }