я управляю моими зарегистрированными пользователями ... теперь я хочу увидеть, у какого пользователя есть какое разрешение в соответствии с его / его ролью. Я хочу показать разрешения в поле и заставить их проверить, есть ли у пользователя эта роль. проблема заключается в разрешении целевого пользователя в соответствии с его ролью
мой контроллер для просмотра разрешения целевого пользователя:
public function view(Request $request, User $user){
$roles = Role::with('permissions')->get();
$permissions = Permission::get();
return view('adminarea.roles.view', compact('roles','user', 'permissions'));
}
Файл Blade:
@foreach ( $permissions as $per )
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="permissions_ids[]" id="permissions"
value="{{ $per->id }}" style="margin-right:5px" @if (?)
checked="true"
@endif>
<label class="custom-control-label" for="permissions">{{ $per->name }}</label>
</div>
@endforeach
Модельные отношения:
Ролевая таблица:
public function users()
{
return $this
->belongsToMany('App\User')
->withTimestamps();
}
public function permissions()
{
return $this->belongsToMany(Permission::class, 'roles_permissions');
}
Таблица разрешений:
public function roles()
{
return $this->belongsToMany(Role::class, 'roles_permissions');
}
Таблица пользователей:
public function roles()
{
return $this->belongsToMany(Role::class, 'users_roles');
}
Структура таблицы :
это моя схема role_permission:
Schema::create('roles_permissions', function (Blueprint $table) {
$table->unsignedBigInteger('role_id');
$table->unsignedBigInteger('permission_id');
//FOREIGN KEY CONSTRAINTS
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->foreign('permission_id')->references('id')->on('permissions')->onDelete('cascade');
//SETTING THE PRIMARY KEYS
$table->primary(['role_id', 'permission_id']);
});
и схема users_role:
Schema::create('users_roles', function (Blueprint $table) {
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('role_id');
//FOREIGN KEY CONSTRAINTS
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
//SETTING THE PRIMARY KEYS
$table->primary(['user_id', 'role_id']);
});
таблица разрешений:
Schema::create('permissions', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('description');
$table->timestamps();
});
и схема таблицы ролей:
Schema::create('roles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('description');
$table->timestamps();
});