surat/frontend/modules/register/models/AutopsyConsultSearch.php

1 line
2.5 KiB
PHP
Raw Normal View History

2024-12-25 03:04:59 +00:00
<?php namespace frontend\modules\register\models; use common\models\AutopsyConsult; use yii\base\Model; use yii\data\ActiveDataProvider; use yii\db\Expression; /** * AutopsyConsultSearch represents the model behind the search form of `common\models\AutopsyConsult`. */ class AutopsyConsultSearch extends AutopsyConsult { public $patient_name; /** * {@inheritdoc} */ public function rules() { return [ [['id', 'pathologist1_id', 'pathologist2_id', 'diagnosis_by', 'status', 'autopsy_diagnosis_id', 'created_at', 'updated_at', 'created_by', 'updated_by'], 'integer'], [['id_case', 'remark', 'patient_name'], 'safe'], ]; } /** * {@inheritdoc} */ public function scenarios() { // bypass scenarios() implementation in the parent class return Model::scenarios(); } /** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = AutopsyConsult::find()->with(['caseAutopsy']); // add conditions that should always apply here $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $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; } // grid filtering conditions $query->andFilterWhere([ 'autopsy_consult.id' => $this->id, 'autopsy_consult.pathologist1_id' => $this->pathologist1_id, 'autopsy_consult.pathologist2_id' => $this->pathologist2_id, 'autopsy_consult.diagnosis_by' => $this->diagnosis_by, 'autopsy_consult.status' => $this->status, 'autopsy_consult.autopsy_diagnosis_id' => $this->autopsy_diagnosis_id, 'autopsy_consult.created_at' => $this->created_at, 'autopsy_consult.updated_at' => $this->updated_at, 'autopsy_consult.created_by' => $this->created_by, 'autopsy_consult.updated_by' => $this->updated_by, ]); $query->andFilterWhere(['like', 'autopsy_consult.id_case', $this->id_case]) ->andFilterWhere(['like', 'autopsy_consult.remark', $this->remark]) ->andFilterWhere(['like', new Expression('CONCAT(case_autopsy.name,case_autopsy.last_name)'), $this->patient_name]); return $dataProvider; } }