db->createCommand(' SELECT termin_structure.termin_id, termin_structure.termin_pid, termin_lang.termin_title FROM termin_structure INNER JOIN termin_lang ON termin_lang.termin_id = termin_structure.termin_id AND termin_lang.language_id = '.Yii::$app->params['language_id'].' ORDER BY termin_structure.termin_id ASC, termin_structure.termin_pid ASC ')->queryAll(); } /** * Выполняет поиск по параметрам * @param array $param принимает [catalog_id, language_id, return_one, return_field, show_all] * @return array one | array all | string значение масива */ public function finInfo (array $params = []) { Tools::ifNotExist ($params, array ( 'catalog_id' => false, 'language_id' => false, 'return_one' => false, 'return_field' => false, 'show_all' => false, 'to_array' => true, )); $model = new Catalog(); $query = $model->find()->select('*'); $query->joinWith(['relationCatalogLang']); $WHERE = array (); if ($params['catalog_id']) { $WHERE['catalog.catalog_id'] = $params['catalog_id']; } if ($params['language_id']) { $WHERE['catalog_i18n.language_id'] = $params['language_id']; } if (! empty ($WHERE)) { $query->where($WHERE); } if ($params['to_array']) { $query = $query->asArray(); } if ($params['return_one'] || $params['return_field']) { $result = $params['return_field'] ? $query->one($params['return_field']) : $query->one(); } else { $result = $query->all(); } return $result; } // =================== // ==== STRUCTURE ==== // =================== var $mass = array (); public function build () { if ($this->mass = self::get ()) { return $this->getRecrusive (8); } } public function findChild ($id) { $mass = array (); foreach ($this->mass as $row) { if ($row['termin_pid'] == $id) { $mass[] = $row; } } return $mass; } public function getRecrusive ($menu_id) { $items = $this->findChild($menu_id); if (! empty ($items)) { echo ''; } } // ===== /** * @return \yii\db\ActiveQuery */ public function getRelationCatalogLangPlus() { return $this->getRelationCatalogLang()->where(['language_id' => yii::$app->params['language_id']]); } /** * @return \yii\db\ActiveQuery */ public function getRelationCatalogLang() { return $this->hasOne(CatalogLang::className(), ['catalog_id' => 'catalog_id']); } }