سلام من توی سطح دسترسی کاربر به خطا خوردم کسی هست کمک کنه بهم
Schema::create('permission_role', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->unsignedBigInteger('permission_id');
$table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');
$table->primary(['role_id' , 'permission_id']);
});
Schema::create('role_user', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->primary(['role_id' , 'user_id']);
});
public function boot()
{
$this->registerPolicies();
foreach($this->getPermissions() as $permission){
Gate::define($permission->name , function($user)use ($permission){
return $user->hasRole($permission->roles);
});
}
}
protected function getPermissions()
{
return Permission::with('roles')->get();
}
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function hasRole($role)
{
if(is_string($role)){
return $this->roles->contains('name', $role);
}
return !! $role->intersect($this->roles)->count();
}
سلام؛ شما جایی دارین مقدار به دیتابیس اضافه میکنید که باید ای دی پرمیشن و ای دی رول رو ذخیره کنید، ولی دارین اسم رول رو میفرستین، به قسمت اخر خطاتون دقت کنید
بله دوست عزیز چون من توی بخش سلکت چند دسترسی رو برای یک نقش ارسال میکردم برای همین خطا میداد باید بصورت ارایه ارسال میشد من به صورت زیر نوشتم
<select name="permission_id" id="permission_id" class="form-control" multiple>
که به این مدلی اصلاح باید میشد
<select name="permission_id[]" id="permission_id" class="form-control" multiple>
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟