From 255bf2a2d8870e06daa0dc7eebd50726c30f3de9 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Sat, 11 Mar 2023 00:10:30 +0100 Subject: [PATCH] voting added --- app/Models/ProjectProposal.php | 18 +++++++++--- ..._slug_field_to_project_proposals_table.php | 29 +++++++++++++++++++ 2 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php diff --git a/app/Models/ProjectProposal.php b/app/Models/ProjectProposal.php index 3a36e816..2987e83e 100644 --- a/app/Models/ProjectProposal.php +++ b/app/Models/ProjectProposal.php @@ -6,42 +6,52 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Support\Facades\Cookie; use Spatie\Image\Manipulations; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; use Spatie\MediaLibrary\MediaCollections\Models\Media; +use Spatie\Sluggable\HasSlug; +use Spatie\Sluggable\SlugOptions; class ProjectProposal extends Model implements HasMedia { use InteractsWithMedia; use HasFactory; + use HasSlug; /** * 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', + 'id' => 'integer', 'user_id' => 'integer', ]; protected static function booted() { static::creating(function ($model) { - if (! $model->created_by) { + if (!$model->created_by) { $model->created_by = auth()->id(); } }); } + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + public function registerMediaConversions(Media $media = null): void { $this diff --git a/database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php b/database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php new file mode 100644 index 00000000..894eab91 --- /dev/null +++ b/database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php @@ -0,0 +1,29 @@ +string('slug') + ->unique() + ->after('id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('project_proposals', function (Blueprint $table) { + // + }); + } +};