Laravel Enum is a package by Ben Sampson that adds support for creating enums in PHP and includes a generator for Laravel. Here’s an example of what an Enum class looks like using this package:
<?php
namespace App\Enums;
use BenSampo\Enum\Enum;
final class UserType extends Enum
{
const Administrator = 0;
const Moderator = 1;
const Subscriber = 2;
const SuperAdministrator = 3;
}
Check out the readme for a list of methods and other examples of how to use this package.
One of my favorite features I noticed from the readme is controller validation using a supplied EnumValue
rule:
<?php
public function store(Request $request)
{
$this->validate($request, [
'user_type' => ['required', new EnumValue(UserType::class)],
]);
}
You can also validate on the keys using the EnumKey
rule:
<?php
public function store(Request $request)
{
$this->validate($request, [
'user_type' => ['required', new EnumKey(UserType::class)],
]);
}
Another Laravel-specific feature that you might find useful is localization:
<?php
// resources/lang/en/enums.php
use App\Enums\UserType;
return [
'user-type' => [
UserType::Administrator => 'Administrator',
UserType::SuperAdministrator => 'Super administrator',
],
];
// resources/lang/es/enums.php
use App\Enums\UserType;
return [
'user-type' => [
UserType::Administrator => 'Administrador',
UserType::SuperAdministrator => 'Súper administrador',
],
];
0 comments:
Post a Comment
Thanks