| @@ -21,9 +21,8 @@ | ||
| 21 | 21 | protected $guarded = [ 'id' ]; |
| 22 | 22 | |
| 23 | 23 | protected $fillable = [ |
| 24 | 24 | 'title', |
| 25 | - 'description', | |
| 26 | 25 | 'meta', |
| 27 | 26 | 'slug' |
| 28 | 27 | ]; |
| 29 | 28 | |
| @@ -29,13 +28,16 @@ | ||
| 29 | 28 | |
| 30 | 29 | protected static function booted() |
| 31 | 30 | { |
| 32 | 31 | static::creating(function ($model) { |
| 33 | - $model->slug = static::generateUniqueSlug($model->title); | |
| 32 | + if (!$model->slug) { | |
| 33 | + $model->slug = static::generateUniqueSlug($model->title); | |
| 34 | + } | |
| 34 | 35 | }); |
| 35 | 36 | |
| 36 | 37 | static::updating(function ($model) { |
| 37 | - if ($model->isDirty('title')) { | |
| 38 | + $protectedSlugs = ['standard', 'reduced', 'zero']; | |
| 39 | + if ($model->isDirty('title') && !in_array($model->getOriginal('slug'), $protectedSlugs, true)) { | |
| 38 | 40 | $model->slug = static::generateUniqueSlug($model->title, $model->id); |
| 39 | 41 | } |
| 40 | 42 | }); |
| 41 | 43 | } |