سلام دوستان من میخام از بین دوره هایی که تو سایت میزارم مثلا فقط یه گروه خاصی که تو اون دسته بندی قرار دارن بتونن ببینن
هر کسی نتونه دوره گروه دیگه رو ببینه
به این شکل که کاربران موقع ثبت نام تو دسته ای که قرار دارند رو انتخاب میکنن و تو پروفایلشون اطلاعات مربوط به گروه خودشون رو مبیین
اینجا نمیدونم راهی که دارم میرم درسته یا نه
دسته بندی رو به شکل زیر تعریف کردم
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);
}
سلام
ببینید شما وقتی وارد صفحه اون دسته بندی میشین براساس ایدی اون دسته وارد شدید و توی کنترلر مشخص کردید که کاربران مربوط به ایدی همون دسته را نشان بدهد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟