راکت
محسن مهری
محسن مهری
توسط محسن مهری مطرح شد
حل
4 پاسخ

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

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


ثبت پرسش جدید
سیدعلی موسوی
سیدعلی موسوی
تخصص :سی شارپ و پی اچ پی
@juza666 سال پیشمطرح شد
1

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

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

    // The blog post is valid...
}

محسن مهری
محسن مهری
تخصص :برنامه نویس back-end با زبان php framework laravel
@mohsen.mehri61016 سال پیشمطرح شد
0

سلام به جوابم رسیدم با تابع 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
تخصص :Software engineer
@khanzadimahdi6 سال پیشمطرح شد
1

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


محسن مهری
محسن مهری
تخصص :برنامه نویس back-end با زبان php framework laravel
@mohsen.mehri61016 سال پیشمطرح شد
0

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

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

سیدعلی موسوی
سیدعلی موسوی
تخصص :سی شارپ و پی اچ پی
@juza666 سال پیشمطرح شد
1

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

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

    // The blog post is valid...
}

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

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