/** * Saves the related location object. * * @param bool $runValidation * @param array $attributeNames * @return boolean * @see yii\db\ActiveRecord::save() */ public function saveLocation($runValidation = true, $attributeNames = null) { $location = $this->location; if ($location === null) { $location = new Location(); } $location->country_id = $this->country_id; $location->region_id = $this->region_id; $location->city_id = $this->city_id; $location->address = $this->address; $location->postal_code = $this->postal_code; $location->latitude = $this->latitude; $location->longitude = $this->longitude; if (is_array($attributeNames)) { $attributesNames = array_intersect(['country_id', 'region_id', 'city_id', 'address', 'postal_code', 'latitude', 'longitude'], $attributesNames); } if (empty($attributeNames)) { $attributeNames = null; } if ($location->save($runValidation, $attributeNames) === false) { $this->addErrors($location->getErrors()); return false; } $this->location_id = $location->id; return true; }