0% found this document useful (0 votes)
22 views3 pages

Membuat Role User Di Laravel 12

Dokumen ini menjelaskan cara membuat sistem role user di Laravel tanpa menggunakan package. Langkah-langkahnya mencakup pembuatan tabel untuk roles dan user_roles, pembuatan model Role dan UserRole, penambahan relasi ke model User, pembuatan middleware untuk memeriksa role, dan penampilan menu di Blade sesuai dengan role user. Dengan mengikuti langkah-langkah ini, pengguna dapat mengelola dan menampilkan menu berdasarkan role di aplikasi Laravel mereka.

Uploaded by

Hidjrah Saputra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views3 pages

Membuat Role User Di Laravel 12

Dokumen ini menjelaskan cara membuat sistem role user di Laravel tanpa menggunakan package. Langkah-langkahnya mencakup pembuatan tabel untuk roles dan user_roles, pembuatan model Role dan UserRole, penambahan relasi ke model User, pembuatan middleware untuk memeriksa role, dan penampilan menu di Blade sesuai dengan role user. Dengan mengikuti langkah-langkah ini, pengguna dapat mengelola dan menampilkan menu berdasarkan role di aplikasi Laravel mereka.

Uploaded by

Hidjrah Saputra
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

Berikut adalah contoh cara membuat role user di Laravel tanpa menggunakan package

dan menampilkan menu di Blade sesuai role user:

*Langkah 1: Buat tabel roles dan user_roles*

Buat tabel `roles` untuk menyimpan daftar role yang tersedia:


use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateRolesTable extends Migration


{
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('description');
$table->timestamps();
});
}

public function down()


{
Schema::dropIfExists('roles');
}
}

Buat tabel `user_roles` untuk menyimpan relasi antara user dan role:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreateUserRolesTable extends Migration


{
public function up()
{
Schema::create('user_roles', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('role_id');
$table->timestamps();

$table->foreign('user_id')->references('id')->on('users');
$table->foreign('role_id')->references('id')->on('roles');
});
}

public function down()


{
Schema::dropIfExists('user_roles');
}
}

*Langkah 2: Buat model Role dan UserRole*

Buat model `Role` untuk mengelola data role:


namespace App\Models;

use Illuminate\Database\Eloquent\Model;
class Role extends Model
{
protected $fillable = ['name', 'description'];

public function users()


{
return $this->belongsToMany(User::class, 'user_roles');
}
}

Buat model `UserRole` untuk mengelola relasi antara user dan role:
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class UserRole extends Model


{
protected $table = 'user_roles';

protected $fillable = ['user_id', 'role_id'];

public function user()


{
return $this->belongsTo(User::class);
}

public function role()


{
return $this->belongsTo(Role::class);
}
}

*Langkah 3: Tambahkan relasi role ke model User*

Tambahkan relasi role ke model `User`:


namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable


{
// ...

public function roles()


{
return $this->belongsToMany(Role::class, 'user_roles');
}

public function hasRole($role)


{
return $this->roles()->where('name', $role)->exists();
}
}

*Langkah 4: Buat middleware untuk memeriksa role*

Buat middleware `CheckRole` untuk memeriksa role user:


namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;

class CheckRole
{
public function handle(Request $request, Closure $next, $role)
{
if (!$request->user()->hasRole($role)) {
abort(403);
}

return $next($request);
}
}

*Langkah 5: Tampilkan menu di Blade sesuai role*

Buat Blade template untuk menampilkan menu sesuai role:


// layouts/app.blade.php

<nav>
<ul>
@if(auth()->user()->hasRole('admin'))
<li><a href="{{ route('admin.dashboard') }}">Dashboard</a></li>
@endif

@if(auth()->user()->hasRole('user'))
<li><a href="{{ route('user.profile') }}">Profile</a></li>
@endif
</ul>
</nav>

Dengan demikian, Anda telah membuat role user di Laravel tanpa menggunakan package
dan menampilkan menu di Blade sesuai role user.

You might also like