public function search($params) { $query = Device::find(); // add conditions that should always apply here $dataProvider = new ActiveDataProvider(['query' => $query]); /** * Настройка параметров сортировки * Важно: должна быть выполнена раньше $this->load($params) * statement below */ $dataProvider->setSort(['attributes' => ['id', 'typeDeviceName' => ['asc' => ['type_device.name_type' => SORT_ASC], 'desc' => ['type_device.name_type' => SORT_DESC], 'label' => 'Тип прибора'], 'name_device', 'serial', 'usdName' => ['asc' => ['usd.name_usd' => SORT_ASC], 'desc' => ['usd.name_usd' => SORT_DESC], 'label' => 'Сборщик'], 'work_device']]); if (!($this->load($params) && $this->validate())) { /** * Жадная загрузка данных типа приборов * для работы сортировки. */ $query->joinWith(['idTypeDevice']); $query->joinWith(['idUsd']); return $dataProvider; } // grid filtering conditions $query->andFilterWhere(['device.id' => $this->id, 'id_type_device' => $this->id_type_device, 'id_usd' => $this->id_usd, 'work_device' => $this->work_device]); $query->andFilterWhere(['like', 'name_device', $this->name_device])->andFilterWhere(['like', 'serial', $this->serial]); // Фильтр по сборщику $query->joinWith(['idUsd' => function ($q) { $q->andFilterWhere(['like', 'usd.name_usd', $this->usdName]); }]); // Фильтр по типу прибора $query->joinWith(['idTypeDevice' => function ($q) { $q->andFilterWhere(['like', 'type_device.name_type', $this->typeDeviceName]); }]); return $dataProvider; }
public function getDevice($id) { try { //Получаем весь массив данных из таблицы $q = Device::find()->select(['id'])->where(['id_usd' => $id, 'work_device' => '1'])->createCommand()->queryAll(); } catch (\Exception $e) { echo "Something went wrong of get Device\n"; throw $e; return FALSE; } return $q; }
/* @var $model app\models\system\DataList */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="row"> <div class="col-lg-5"> <div class="data-list-form"> <?php $form = ActiveForm::begin(); ?> <?php //Получаем все приборы $d1 = Device::find()->orderBy('name_device')->all(); //Формируем массив с ключем равным полю 'id' и значением равным полю 'name' $items1 = ArrayHelper::map($d1, 'id', 'name_device'); $params1 = ['prompt' => 'Выберите прибор']; echo $form->field($model, 'id_device')->dropDownList($items1, $params1); ?> <?php //Получаем все каналы $d2 = DataRef::find()->orderBy('name_ref')->all(); //Формируем массив с ключем равным полю 'id' и значением равным полю 'name' $items2 = ArrayHelper::map($d2, 'id', 'name_ref'); $params2 = ['prompt' => 'Выберите']; echo $form->field($model, 'id_data_ref')->dropDownList($items2, $params2); ?>