مهرداد
4 سال پیش توسط مهرداد مطرح شد
2 پاسخ

سطح دسترسی کاربر

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

        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();
    }

توضیح تصویر رو وارد کنید


ثبت پرسش جدید
coarad supp
تخصص : برنامه نویس لاراول
@coaradsupp 4 سال پیش مطرح شد
0

سلام؛ شما جایی دارین مقدار به دیتابیس اضافه میکنید که باید ای دی پرمیشن و ای دی رول رو ذخیره کنید، ولی دارین اسم رول رو میفرستین، به قسمت اخر خطاتون دقت کنید


مهرداد
@mehrdadroshanraee69 4 سال پیش آپدیت شد
0

@coaradsupp

بله دوست عزیز چون من توی بخش سلکت چند دسترسی رو برای یک نقش ارسال میکردم برای همین خطا میداد باید بصورت ارایه ارسال میشد من به صورت زیر نوشتم

                    <select name="permission_id" id="permission_id" class="form-control" multiple>

که به این مدلی اصلاح باید میشد

                    <select name="permission_id[]" id="permission_id" class="form-control" multiple>

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

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