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; }
public function actionIn() { if (User::hasRole('admin')) { $model = new Device(); //$dataProvider = $searchModel->search(Yii::$app->request->queryParams); //\Yii::trace('### ### ### Тест лога'); //\Yii::trace(Yii::$app->request->post()); if ($model->load(Yii::$app->request->post())) { //\Yii::trace('### ### ### If'); //return $this->redirect(['/table/device/view', 'id' => $model->id]); $searchModel = new DataListSearch(); $dataProvider = $searchModel->search(['DataListSearch' => ['id_device' => $model->id, 'typeDataRef' => 'b']]); //Получаем массив данных из таблицы $allq = DataList::find()->select(['data_list.id', 'number', 'time_point'])->joinWith('idDataRef')->where(['id_device' => $model->id, 'type_data_ref' => 'b'])->createCommand()->queryAll(); return $this->render('in', ['model' => $model, 'r' => 1, 'dataProvider' => $dataProvider, 'qwery' => $allq]); } else { //\Yii::trace('### ### ### Else'); return $this->render('in', ['model' => $model, 'r' => NULL]); } } else { throw new NotFoundHttpException('Страница не найдена.'); } }
/** * @return \yii\db\ActiveQuery */ public function getDevices() { return $this->hasMany(Device::className(), ['id_type_device' => 'id']); }
/* @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); ?>
/** * @return \yii\db\ActiveQuery */ public function getDevice() { return $this->hasOne(Device::className(), ['id' => 'id_device']); }
/** * Finds the Device model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Device the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Device::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('Запрашиваемая страница не существует.'); } }