Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhaba json data tipinde olan slug sütunum var. bunu unique yapmak istiyorum veyada create yaparken kontrolünü yapmak istiyorum ama bir türlü yapamadım yardımcı olurmusunuz?

Model de kontrol edebilirsin yada bir validate yazabilirsin

$request->validate([
    'slug' => [
        'required',
        function ($attribute, $value, $fail) {
            if (YourModel::whereJsonContains('json_column->slug', $value)->exists()) {
                $fail('The slug has already been taken.');
            }
        },
    ],
]);
use Illuminate\Database\Eloquent\Model;
use Illuminate\Validation\Rule;

class YourModel extends Model
{
    protected $casts = [
        'json_column' => 'array',
    ];

    public static function boot()
    {
        parent::boot();

        static::creating(function ($model) {
            $slug = $model->json_column['slug'] ?? null;
            if (YourModel::whereJsonContains('json_column->slug', $slug)->exists()) {
                throw new \Exception("Slug değeri zaten mevcut: {$slug}");
            }
        });
    }
}

    koti42 Hocam bu kodları denedim fakat yapamadım. FilamentPHP kullanıyorum. tabloda name, slug ve status var bu arada.

      enessvg model de create işlemin de yapabilirsin yada slug inputun var ise onun içinde beforeSaveMutating'i çağırarak işlem yapman lazım kayıttan önce kontrol edip uyarı vermek adına

      protected function mutateFormDataBeforeCreate(array $data): array
      {
          $data['user_id'] = auth()->id();
       
          return $data;
      }

      Create Metodunun için de gelen veriyi de kontrol edersin eğer uyuşmuyor ise this->halt(); ile kesersin işlemi yarıda kaydetmez