Morteza Khodarahmi
3 سال پیش توسط Morteza Khodarahmi مطرح شد
7 پاسخ

attach دیتا در لاراول

سلام دوستان گلم
@websaz @hesammousavi @mohaligateway
وقتی همزمان چند تا دیتا رو با هم attach میکنم فقط مورد اول رکورد میشه باقیش خالی میمونه
دونه دونه تست کردم مشکلی ندارن pivot هم ساختم واسشون رابطه هاشونم اکیه فقط احساس میکنم درست attach نمیکنم

    $course = new Course();
        $course =  $course->create($request->all());
        $course = $course->users()->attach($request->teachers);
        $course =$course->categories()->attach($request->categories);
        $course = $course->classdays()->attach($request->classdays);

ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

بنظر شما داشتن متغییر تکراری دلیل نمیشه؟! اصلا چرا تکرار متغییر؟! در اصل اطلاعات بعد از اتچ شما توی این متغییر ریخته میشه برای ریلیشن و اتچ درخواست بعدی؟!

یک توضیح بدین


Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش آپدیت شد
0

@juza66
نه برای درخواست بعدی ذخیره نمیشه
فقط باید هر کدوم جدا داخل table خودشون ذخیره بشن
این تعریف یه دوره هست که این شکلیه
هر کدوم از اینا باید جدا جدا ذخیره بشن


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

خب اسم متغییرها رو عوض کن! یا برشون دار! و تست کن. (نیازی نیست بعد از اتچ کاری کنی)

 $course = new Course();
        $course =  $course->create($request->all());
        $course->users()->attach($request->teachers);
        $course->categories()->attach($request->categories);
        $course->classdays()->attach($request->classdays);

Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش مطرح شد
0

@juza66
عوض کردم نشد
فقط اولی رکورد میشه،جای هرکدومم که عوض میکنم رکورد میشه


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

ریلیشن ها یا متدهای مدل Course ببینم


Morteza Khodarahmi
تخصص : Backend Developer
@mrkhodarahmii 3 سال پیش آپدیت شد
0

@juza66
برای user هم به همین صورته

   public function users()
    {
        return $this->belongsToMany(User::class);
    }

این مدلی از course->id ایراد میگیره

 $course = new Course();
        $course =  $course->create($request->all());
        $course->users()->attach($request->teachers);
        $course->categories()->attach($request->categories);
        $course->classdays()->attach($request->classdays);

سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش مطرح شد
0

قدم به قدم dd بگیر و اطلاعات رو بذار .

میدونی چرا به آیدی دوره گیر داد؟! یک dd بگیر از این خط

$course =  $course->create($request->all());
dd($course)

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

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