راکت
حل شده

مشکل در UPDATE پس در لاراول

3 پاسخ

سلام دوستان
من در لاراول فرمی طراحی کردم برای ویرایش پستها و هم در قسمت CREATEو هم در قسمت UPDATE تاکید کردم که slug تکراری نباشه.اما موقعی که کاربر میخاد پست خودشا ویرایش کنه اگه slug پستش همون قبلی باشه خطا میده که slug قبلا استفاده شده.مشکل کار کجاست؟؟

ثبت پرسش جدید

پاسخ‌ها

3
سبحان دادخواه
سبحان دادخواه
@SobhanDadkhah

تخصص: دانشجوی برنامه نویسی :)

بهترین پاسخ

سلام. مشکل رایجی هست . در بحث آپدیت کردن باید شناسه/ستون مورد نظرتون که یونیک هست برای همون آیتم که در حال ویرایشش هستید اصطلاحا ignore بشه یا نادیده گرفته بشه. چند مدل نوشتن واسش موجوده در مستندات لاراول

بسته به راحتی خودتون میتونید از هرکدام استفاده کنید.

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

سلام خسته نباشید
در قسمت validation بیاید همچین کاری کنید

$rules = [
    'slug' => ['required', 'string', 'min:3', 'max:255', 'unique:products,slug'],
];

if (request()->method === 'PATCH') {
    $rules['slug'] = ['required', 'string', 'min:3', 'max:255', 'unique:products,slug,' . request()->id];
}

return $rules;

در قسمت فرم که داری ویرایش میکنی بیا یه input مخفی بزار

<input type="hidden" name="id" value="{{ $product->id }}">

مشکل حل میشه :)

محمد میرزاخانی
محمد میرزاخانی
@mirzamohammad.com

'slug' =>Rule::unique('posts')->ignore($Post->id),

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام