where(['uid' => $uid, 'is_default' => 1])->find(); if (empty($address)) { $address = self::with(['area', 'street', 'village', 'brigade'])->where(['uid' => $uid])->find(); } return empty($address) ? [] : $address->toArray(); } public function area() { return $this->hasOne(GeoArea::class, 'area_code', 'area')->field('area_code,area_name'); } public function street() { return $this->hasOne(GeoStreet::class, 'street_code', 'street')->field('street_code,street_name'); } public function village() { return $this->hasOne(GeoVillage::class, 'village_code', 'village')->field('village_code,village_name'); } public function brigade() { return $this->hasOne(GeoBrigade::class, 'id', 'brigade')->field('id,brigade_name'); } }