راکت
حل شده

ذخیره نکردن داده تکراری

4 پاسخ

سلام و خسته نباشید عزیزان
یک فرم دارم وقتی میخام ذخیره کنم،قبلش میخام بررسی کنم که اگه قبلا ذخیره نشده بود توی جدول(توی رکوردهای قبلیمون) ذخیرش کنم
چیکار کنم چی بنویسم ؟؟
همچنین برای جدول میانی هم چیکار کنم (اونم همین مشکل؟)(جدول pivot)

ثبت پرسش جدید

پاسخ‌ها

4
سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

بهترین پاسخ

سلام
چرا اصرار دارین اینهمه کوئری و کد بزنین!
اقای @khanzadimahdi اشاره کردن تویی ولیدیشن یه unique بنویس بهت اجازه ثبت تکراری اطلاعات نمیده!

public function store(Request $request)
{
    $validatedData = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);

    // The blog post is valid...
}
محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

سلام به جوابم رسیدم با تابع firstOrCreate اما، هنوزم با آپدیت کردن جدول میانی مشکل دارم.

$word_en = auth()->user()->englishes()->firstOrCreate(request(['word_en']));
$word_fa = auth()->user()->persians()->firstOrCreate(request(['word_fa']));
$word_en->persians()->attach($word_fa->id);//this is error
mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

توی ولیدیشن یه چیزی داریم به نام unique بررسی میکنه اگه یونیک باشه (قبلا ثبت نشده باشه) اجازه ثبت فرم رو میده.

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

محسن مهری
محسن مهری
@mohsen.mehri6101

تخصص: برنامه نویس back-end با زبان php framework laravel

سلام خودم از دستی اون رو گذاشتم که داده تکراری ثبت نکنه دیگه (!!)
اما به هر حال جواب سوالمو گرفتم با این روش :

try {
            $word_en->persians()->attach($word_fa->id);
        }catch(\Illuminate\Database\QueryException $e) {
            alert()->error('این کلمه قبلا ذخیره شده است', 'خطا!')->autoclose(2000);
            return redirect()->back();
        }

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

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