Filament: Unique Record in the Edit Form

If you use validation with ->unique(), don't forget to ignore the current record in the Edit form.

Otherwise, you will have a validation error "The [field] has already been taken." in the Edit form.

// Don't just do that:
TextInput::make('name')
->required()
->unique(),
 
// Do this instead:
TextInput::make('name')
->required()
->unique(ignoreRecord: true),

Like our articles?

Become a Premium Member for $129/year or $29/month
What else you will get:
  • 59 courses (1057 lessons, total 42 h 44 min)
  • 79 long-form tutorials (one new every week)
  • access to project repositories
  • access to private Discord

Recent Premium Tutorials