Files
einundzwanzig-portal/app/Models/City.php
Benjamin Takats 3c9cddef13 meetups added
2022-12-12 19:17:09 +01:00

58 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Akuechler\Geoly;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
class City extends Model
{
use HasFactory;
use HasSlug;
use Geoly;
/**
* The attributes that aren't mass assignable.
* @var array
*/
protected $guarded = [];
/**
* The attributes that should be cast to native types.
* @var array
*/
protected $casts = [
'id' => 'integer',
'country_id' => 'integer',
];
/**
* Get the options for generating the slug.
*/
public function getSlugOptions(): SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom(['country.code', 'name'])
->saveSlugsTo('slug')
->usingLanguage('de');
}
public function country(): \Illuminate\Database\Eloquent\Relations\BelongsTo
{
return $this->belongsTo(Country::class);
}
public function venues(): \Illuminate\Database\Eloquent\Relations\HasMany
{
return $this->hasMany(Venue::class);
}
function events()
{
return $this->hasManyThrough(CourseEvent::class, Venue::class);
}
}