3. 5 Delete Role (ok)

C:\xampp82\htdocs\phongkhamnet\app\Http\Controllers\RoleController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use DB;
class RoleController extends Controller
{
  /**
   * Display a listing of the resource.
   */
  public function index()
  {
    $roles = Role::paginate(2);
    return view('roles.index')->with(compact('roles'));
  }
  /**
   * Show the form for creating a new resource.
   */
  public function create()
  {
    $permission = Permission::get();
    return view('roles.create', compact('permission'));
  }
  /**
   * Store a newly created resource in storage.
   */
  public function store(Request $request)
  {
    $this->validate($request, [
      'name' => 'required|unique:roles,name',
      'permission' => 'required',
    ]);
    $role = Role::create(['name' => $request->input('name')]);
    $role->syncPermissions($request->input('permission'));
    return redirect()->route('role.index');
  }
  /**
   * Display the specified resource.
   */
  public function show(string $id)
  {
    $role = Role::find($id);
    $rolePermissions = Permission::join("role_has_permissions", "permissions.id", "=", "role_has_permissions.permission_id")
      ->where("role_has_permissions.role_id", $id)->get();
    return view('roles.show')->with(compact('role', 'rolePermissions'));
  }
  /**
   * Show the form for editing the specified resource.
   */
  public function edit(string $id)
  {
    $role = Role::find($id);
    $permission = Permission::get();
    $rolePermissions = DB::table("role_has_permissions")
      ->where("role_has_permissions.role_id", $id)
      ->pluck('role_has_permissions.permission_id', 'role_has_permissions.permission_id')
      ->all();
    return view('roles.edit', compact('role', 'permission', 'rolePermissions'));
  }
  /**
   * Update the specified resource in storage.
   */
  public function update(Request $request, string $id)
  {
    $role = Role::find($id);
    $role->name = $request->input('name');
    $role->save();
    $role->syncPermissions($request->input('permission'));
    return redirect()->route('role.index');
  }
  /**
   * Remove the specified resource from storage.
   */
  public function destroy(string $id)
  {
    DB::table("roles")->where('id', $id)->delete();
    return redirect()->route('role.index');
  }
}

Last updated