Skip to content
generators / v1

Using Enum classes

Last updated:

If you want to use a PHP Enum class for a column instead of a MySQL enum or set type, you can indicate to the generator that the column should use an Enum class by adding a comment to the column in the format enum:<EnumClass>:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use App\Enums\OrderStatuses;

class CreateOrdersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('orders', function (Blueprint $table) {
            $table->id();           
            $table->string('status')->index()->comment('enum:' . OrderStatuses::class);
            $table->timestamps();
        });
    }
}

Now the generator will utilize the OrderStatuses Enum class when generating all the relevant code for the status column.

Documentation
All packages

javaabu/generators

Source on GitHub