まず、Enumを使用するためには、Laravel Enumパッケージをインストールする必要があります。以下のコマンドを使用して、パッケージをインストールします。
composer require benSampo/laravel-enum
パッケージがインストールされたら、Enumを定義する準備が整います。Enumクラスを作成し、列挙する値を定義します。例えば、StatusEnumという名前のEnumを作成し、"active"と"inactive"の2つの値を定義する場合、以下のようなコードを書きます。
namespace App\Enums;
use BenSampo\Enum\Enum;
final class StatusEnum extends Enum
{
const Active = 'active';
const Inactive = 'inactive';
}
Enumクラスでは、BenSampo\Enum\Enum
クラスを継承し、列挙する値を定数として定義します。
次に、マイグレーションファイルでEnumを使用します。例えば、usersテーブルにstatus列を追加し、その列をEnumとして定義する場合、以下のようなマイグレーションファイルを作成します。
use App\Enums\StatusEnum;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddStatusColumnToUsersTable extends Migration
{
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->enum('status', StatusEnum::class)->default(StatusEnum::Active);
});
}
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('status');
});
}
}
上記の例では、enum
メソッドを使用してstatus列を定義し、Enumクラス名とデフォルト値を指定しています。
マイグレーションを実行するには、以下のコマンドを使用します。
php artisan migrate
これにより、usersテーブルにstatus列が追加されます。
以上が、LaravelでEnumを定義し、データベースマイグレーションで使用する方法の一例です。Enumを使用することで、列挙された値の範囲内でのデータの整合性を保つことができます。詳細な使い方や他の方法については、Laravel Enumパッケージのドキュメントを参照してください。