Paradox
1 سال پیش توسط Paradox مطرح شد
3 پاسخ

روابط بین کابران و دسته بندی

سلام دوستان من میخام از بین دوره هایی که تو سایت میزارم مثلا فقط یه گروه خاصی که تو اون دسته بندی قرار دارن بتونن ببینن
هر کسی نتونه دوره گروه دیگه رو ببینه
به این شکل که کاربران موقع ثبت نام تو دسته ای که قرار دارند رو انتخاب میکنن و تو پروفایلشون اطلاعات مربوط به گروه خودشون رو مبیین
اینجا نمیدونم راهی که دارم میرم درسته یا نه

دسته بندی رو به شکل زیر تعریف کردم

       Schema::create('categories', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('slug');
            $table->integer('parent')->default(0);
            $table->foreignId('category_id')->constrained()->onUpdate('cascade')->onDelete('cascade');
            $table->timestamps();
        });

        Schema::create('category_user' , function(Blueprint $table) {
            $table->foreignId('category_id')->constrained()->onUpdate('cascade')->onDelete('cascade');
            $table->foreignId('user_id')->constrained()->onUpdate('cascade')->onDelete('cascade');
            $table->primary(['category_id' , 'user_id']);
        });

        Schema::create('category_course' , function(Blueprint $table) {
            $table->foreignId('category_id')->constrained()->onUpdate('cascade')->onDelete('cascade');
            $table->foreignId('course_id')->constrained()->onUpdate('cascade')->onDelete('cascade');
            $table->primary(['category_id' , 'course_id']);
        });
    }

موقع ثبت نام وقتی دسته مورد نظر رو انتخاب میکنم هیچ دیتایی ثبت نمیشه

        $data = $request->validate([
            'name' => ['required', 'string', 'max:255'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
            'national_code' => ['required' , New Nationalcode],
            'g-recaptcha-response' =>['required' , New Recaptcha],
            'categories' => 'required',
     ]);

           $user = User::create([
            'name' => $data['name'],
            'password' => Hash::make($data['password']),
            'national_code' => $data['national_code'],
        ]);

        $user->categories()->sync($data['categories']);

        return redirect(route('profile'));

این چیزی که نوشتم اشتباهه ؟

مدل یوزر

    public function categories()
    {
        return $this->hasMany(Category::class);
    }

    public function courses()
    {
        return $this->hasMany(Course::class);
    }

مدل course

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

    public function categories()
    {
        return $this->belongsToMany(Category::class);
    }

مدل دسته بندی

    public function parent()
    {
        return $this->belongsTo(Category::class, 'category_id');
    }

    public function child()
    {
        return $this->hasMany(Category::class , 'parent' , 'id');
    }

    public function courses()
    {
        return $this->belongsToMany(Course::class);
    }

ثبت پرسش جدید
lara
تخصص : طراح
@mehditaheri204 1 سال پیش مطرح شد
0

سلام
ببینید شما وقتی وارد صفحه اون دسته بندی میشین براساس ایدی اون دسته وارد شدید و توی کنترلر مشخص کردید که کاربران مربوط به ایدی همون دسته را نشان بدهد


Paradox
تخصص : در حال یادگیری
@paradox 1 سال پیش مطرح شد
0

@mehditaheri204
به چه شکل باید بنویسم تو کنترلر ؟
بقیه چیزها درست نوشتم؟


Paradox
تخصص : در حال یادگیری
@paradox 1 سال پیش مطرح شد
0

کسی میدونه مشکل کارم کجاست ؟


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

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