/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Lottory::find(); $query->joinWith(['lototytype']); $query->joinWith(['patient']); $dataProvider = new ActiveDataProvider(['query' => $query]); $dataProvider->sort->attributes['lottorytypeName'] = ['asc' => ['wph_lottory_code.name' => SORT_ASC], 'desc' => ['wph_lottory_code.name' => SORT_DESC]]; $dataProvider->sort->attributes['fullName'] = ['asc' => ['patient.fname' => SORT_ASC, 'patient.lname' => SORT_ASC], 'desc' => ['patient.fname' => SORT_DESC, 'patient.lname' => SORT_DESC], 'label' => 'ชื่อ - นามสกุล', 'default' => SORT_ASC]; $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id]); $query->andFilterWhere(['like', 'hn', $this->hn])->andFilterWhere(['like', 'cid', $this->cid])->andFilterWhere(['like', 'lottory_code', $this->lottory_code])->andFilterWhere(['like', 'patient.fname', $this->fullName])->andFilterWhere(['like', 'patient.lname', $this->fullName]); return $dataProvider; }
/** * Finds the Lottory model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Lottory the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Lottory::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }