Saied Hr
4 سال پیش توسط Saied Hr مطرح شد
4 پاسخ

مشکل attach در رابطه چند به چند

سلام دوستان من دو تا جدول ساختم به اسم های button و telegramUser که رابطشون چن به چنده
الان میخوام موقع اضافه کردن یوزر توی جدول telegramUser
جدول میانی همون موقع ایجاد بشه و Id دوتا جدول بالا درونش قرار بگیره
این کدی هست که نوشتم ولی کار نمیکنه ،ضمنا توی هردو جدول بالا ی چن تا سطر ازمایشی ایجاد کردم ،لطفا راهنمایی کنید

        $chatId = request("message.chat.id");

        $buttons=Button::get(["id"]);

        $telegramUsers=TelegramUser::firstOrCreate([
            'chat_id' => $chatId
        ], [
            "name"=>$first_name,
        ]);

        foreach ($buttons as $button)
        {
             $telegramUsers->buttons()->attach($button);
        }

ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

سلام یه نکته هست که در رابطه چند به چند باید رعایت بشه و واجب هم هست اینکه اسم جدول میانه اینجا بسیار مهم است و از ادغام نام دوتا جدول اصلی باید ساخته بشه شما روش پیشنهادی لاراولو برای اسم گذاری جدول ها رعایت نکردین چون اینجا رابطه چند به چند داریم بیشتر تاکید میشه از روش نام گذاری جدول در لاراول پیروی کنید.
اسم جدول button رو جمع ببندید به buttons و اسم جدول telegramUser رو اینطوری ذکر کنید telegramusers و اسم جدول میانه رو هم بزارین button_telegramuser
برنامه رو تست کنین


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

کد رابطه ای که نوشتید رو بذارید


Saied Hr
@saeedlovelorn2 4 سال پیش آپدیت شد
0

اسم جدول میانی رو اشتباه نوشته بودم
روابط بین دو جدول رو هم باید belongsToMany میذاشتم که hasToMany گذاشته بودم
تغییرش دادم درست شد
خیلی ممنونم
@hosseinshirinegad98
@ali.bayat


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد

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

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