Dalam menggunakan package baiknya kita melihat dulu untuk kebutuhan kita dan jangan asal install karena akan menyebabkan beban yang berat untuk aplikasi laravel anda. Dan saya biasanya akan memakai package laravel yang sederhana saja, sesuai kebutuhan dari projectnya. Untuk menggunakan enum
memang cukup lumayan ribet di laravel makanya saya ingin memudahkan pekerjaan dengan package.
Perlu diketahui, jika memang anda rajin maka mending membuat package sendiri atau membuat helper sendiri ketimbang memakai package orang lain karena fitur dengan menggunakan package lain biasanya ada banyak kegunaan melebihi apa yang kita butuhkan.
Baiklah kita akan memulainya sekarang, Install package enum
laravel menggunakan Laravel Enum Package.
composer require mad-web/laravel-enum
Lalu berikut cara Penggunaannya, misal anda ingin menambahkan kolom status
di table users maka buatlah enumnya seperti ini contohnya :
php artisan make:enum UserStatusEnum
atau jika anda ingin menambahkan argumen lain biar lebih cepat bisa menggunakan :
php artisan make:enum UserStatusEnum Active=active Pending=pending
dan akan menghasilkan file di folder App\Enums\UserStatusEnum
dan samplenya seperti ini:
<?php namespace App\Enums; use MadWeb\Enum\Enum; /** * @method static UserStatus Active() * @method static UserStatus Pending() */ final class UserStatusEnum extends Enum { // Sebagai Defaultnya ketika anda membuat record maka akan menggunakan `Active` const __default = self::Active; const Active = 'active'; const Pending = 'pending'; }
Lalu tambahkan lah kolom status
di migration bisa dengan mengetik :
php artisan make:migration add_status_to_users_table
atau anda bisa menambahkan kolom ditable users
seperti ini :
<?php use App\Enums\UserStatusEnum; ... $table->enum('status', ['Pending' => UserStatusEnum::Pending, 'Active' => UserStatusEnum::Active])->default(UserStatusEnum::Pending); ...
Lakukan migrate
:
php artisan migrate
atau jika anda sudah melakukan migrate
anda bisa memigratekan ulang :
php artisan migrate:fresh
Enum Package Laravel sangat bagus ketika anda mengatur di model User
anda karena untuk membaca bahwa kolom
status itu berisi enum, dan cara menerapkan di User
modelnya di file App\Models\User
:
protected $casts = [ 'status' => UserStatusEnum::class, ];
Cara menggunakan di Eloquent cukup mudah dalam method store
sekarang coba tambahkan :
$user = User::first(); $status = $user->status; // PostStatusEnum // Memberikan status kepada user dengan status Pending $user->status = UserStatusEnum::Pending(); // Menyimpan status User $user->save();
Cara memunculkan / menampilkannya pun mudah anda bisa direct langsung seperti ini :
$user = User::first(); // Nanti di blade gunakan seperti ini : {{ $user->status }} // Atau {{ $user->status->label() }}
Demikian tutorial tentang Menggunakan Package Enum Laravel
happy coding...