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