'json', 'extra' => 'json', ]; protected static function booted() { parent::booted(); static::creating(function ($self) { /** @var $self static */ if (empty($self->pid)) { $self->pid = $self->nodeGetRootNodeID(); if (! empty($self->city)) { $self->city = 0; } } if (! is_array($self->extra)) { $self->extra = []; } }); } /** * Region districts * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function districts() { return $this->hasMany($this->modelClass('District', 'Geo'), 'city_id', 'id'); } /** * Region metro branches * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function metroBranches() { return $this->hasMany($this->modelClass('MetroBranch', 'Geo'), 'city_id', 'id'); } /** * Region metro branches * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function metroStations() { return $this->hasMany($this->modelClass('MetroStation', 'Geo'), 'city_id', 'id'); } public function langColumns() { return ['title']; } }