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

مشکل در جدول pivot لاراول

سلام ، بنده دارم api یک اپ موبایل رو می نویسم ، تجربه اولم هستش
این اپ به این شکل هست که یک سری کلاس درسی وجود داره و یک سری یوزر
این یوزر ها میتونن توی هر کلاس درسی که دوست داشتن عضو بشن ! یعنی یک جدول واسط وجود داره

مایگریشن جدول user :

Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name')->nullable();
            $table->string('email')->unique()->nullable();
            $table->string('phone')->unique()->nullable();
            $table->string('api_token')->unique();
            $table->string('studentNum')->nullable();
            $table->string('imageUrl')->nullable();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password')->nullable();
            $table->rememberToken();
            $table->timestamps();
        });

مایگریشن جدول classroom (یوزر آی دی که اینجا هست برای مشخص کردن ادمین کلاس هست و مشکلی توی پیاده سازیش ندارم) :

Schema::create('classrooms', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('className');
            $table->string('uniName');
            $table->string('description')->nullable();
            $table->time('term')->nullable();
            $table->string('security')->default('public');
            $table->string('classLink')->nullable();

            $table->bigInteger('user_id')->unsigned();
            $table->foreign('user_id')
                ->references('id')->on('users')
                ->onDelete('cascade');

            $table->timestamps();
        });

و مایگیریشن جدول واسط :

Schema::create('classusers', function (Blueprint $table) {
            $table->bigInteger('class_id')->unsigned();
            $table->foreign('class_id')
                ->references('id')->on('classrooms')
                ->onDelete('cascade');

            $table->bigInteger('user_id')->unsigned();
            $table->foreign('user_id')
                ->references('id')->on('users')
                ->onDelete('cascade');

            $table->primary(['class_id' , 'user_id']);

            $table->string('userType')->default('user');
        });

اول می خواستم با pivot کار کنم توی روابط یکم سردرگم شدم ، بعد اومدم یک مدل برای جدول واسط ایجاد کردم ولی بازم نمیتونم هندلش کنم
امکانش هست روابطشو برام بگین و چطور عضو شدن رو پیاده سازی کنم ؟


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

به pivot Table در گفتگوی زیر پرداخته شده:
https://roocket.ir/discuss/4097

پیوِت تیبل یا جدول واسط در واقع جدولیه که ارتباط بین ۲ جدول دیگه رو برقرار میکنه.

همچنین مقاله زیر به کاملی این مبحث رو توضیح داده
https://laraveldaily.com/pivot-tables-and-many-to-many-relationships/


حامد کوهستانی
تخصص : web developer
@hamedk9776 5 سال پیش مطرح شد
0

@ali.bayat
تشکر
تونستم انجامش بدم


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

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

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