/** * @param string|null $q * @param int|null $id * * @return array */ public function actionCountries($q = null, $id = null) { if ($id) { return ['results' => ['id' => (int) $id, 'text' => Country::findOne((int) $id)->name]]; } $data = (new Query())->select('id, name AS text')->from(Country::tableName())->orderBy(['name' => SORT_DESC])->limit(50); if ($q) { $data->where(['like', 'name', $q . '%', false]); } return ['results' => array_values($data->createCommand()->queryAll())]; }
/** * @return \yii\db\ActiveQuery */ public function getCountry() { return $this->hasOne(Country::className(), ['id' => 'country_id']); }