/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Cathedra::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->joinWith('faculty'); $dataProvider->setSort(['attributes' => ['cathedra_name' => ['asc' => ['cathedra_name' => SORT_ASC], 'desc' => ['cathedra_name' => SORT_DESC], 'label' => 'Факультет/спеціальність'], 'id_faculty' => ['asc' => ['faculty.faculty_name' => SORT_ASC], 'desc' => ['faculty.faculty_name' => SORT_DESC], 'label' => 'Факультет/спеціальність']]]); $query->andFilterWhere(['cathedra_id' => $this->cathedra_id, 'id_edbo' => $this->id_edbo, 'id_deanery' => $this->id_deanery]); $query->andFilterWhere(['like', 'cathedra_name', $this->cathedra_name])->andFilterWhere(['like', 'faculty.faculty_name', $this->id_faculty]); return $dataProvider; }
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\helpers\ArrayHelper; use app\module\handbook\models\Cathedra; use app\module\handbook\models\Faculty; use kartik\select2\Select2; /* @var $this yii\web\View */ /* @var $model app\module\handbook\models\Speciality */ /* @var $form yii\widgets\ActiveForm */ $all_faculty = Faculty::find()->orderBy('faculty_name ASC')->all(); foreach ($all_faculty as $af) { $tmp_cathedra = Cathedra::find()->where(['id_faculty' => $af['faculty_id']])->orderBy('cathedra_name ASC')->all(); foreach ($tmp_cathedra as $tc) { $all_cathedra[$tc['cathedra_id']] = $tc['cathedra_name'] . " / " . $af['faculty_name']; } } ?> <div class="speciality-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'speciality_name')->textInput(['maxlength' => 100]); ?> <?php