'integer', 'city_id' => 'integer', ]; protected static function booted() { static::creating(function ($model) { if (! $model->created_by) { $model->created_by = auth()->id(); } }); } public function registerMediaConversions(Media $media = null): void { $this ->addMediaConversion('preview') ->fit(Manipulations::FIT_CROP, 300, 300) ->nonQueued(); $this->addMediaConversion('thumb') ->fit(Manipulations::FIT_CROP, 130, 130) ->width(130) ->height(130); } public function registerMediaCollections(): void { $this->addMediaCollection('images') ->useFallbackUrl(asset('img/einundzwanzig.png')); } /** * Get the options for generating the slug. */ public function getSlugOptions(): SlugOptions { return SlugOptions::create() ->generateSlugsFrom(['city.slug', 'name']) ->saveSlugsTo('slug') ->usingLanguage(Cookie::get('lang', config('app.locale'))); } public function createdBy(): BelongsTo { return $this->belongsTo(User::class, 'created_by'); } public function city(): BelongsTo { return $this->belongsTo(City::class); } public function lecturers() { return $this->hasManyDeepFromRelations($this->courses(), (new Course())->lecturer()); } public function courses() { return $this->hasManyDeepFromRelations($this->events(), (new CourseEvent())->course()); } public function courseEvents(): HasMany { return $this->hasMany(CourseEvent::class); } }