Skip to content

[Feature] Sluggable Fields & Auto-generated URLs #7

@devalade

Description

@devalade

Description

Auto-generate URL-friendly slugs from a source field.

Proposed Syntax

php artisan crudify:generate Post \
  --fields="title:string,slug:string:unique" \
  --slug="title"

Behavior

  • Auto-generate slug from title on create
  • Keep slug unique (append -1, -2 if duplicate)
  • Editable slug field in form
  • Route model binding by slug instead of ID

Generated Model

class Post extends Model
{
    protected static function boot(): void
    {
        parent::boot();
        
        static::creating(function ($post) {
            if (empty($post->slug)) {
                $post->slug = Str::slug($post->title);
            }
        });
    }
    
    public function getRouteKeyName(): string
    {
        return 'slug';
    }
}

Route Change

Route::get('/posts/{post:slug}', Show::class)->name('posts.show');

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions