PHPackages                             lemax10/laravel-enums - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. lemax10/laravel-enums

ActiveLibrary[Database &amp; ORM](/categories/database)

lemax10/laravel-enums
=====================

Simple Enum implementation for Laravel. With ability to casting for Eloquent models and labels translations via lang files.

v1.5.6(2y ago)51.9k1MITPHPPHP &gt;=7.1CI failing

Since Oct 7Pushed 2y ago1 watchersCompare

[ Source](https://github.com/LeMaX10/laravel-enums)[ Packagist](https://packagist.org/packages/lemax10/laravel-enums)[ RSS](/packages/lemax10-laravel-enums/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (6)Versions (24)Used By (0)

**THIS PACKAGE IS STILL IN DEVELOPMENT, DO NOT USE YET**

Laravel Enums
=============

[](#laravel-enums)

The package is based on the implementation of Enum from [myclabs/php-enum](https://github.com/myclabs/php-enum).

ExampleModel

```
use App\Enums\ExampleStatusEnum;
use Illuminate\Database\Eloquent\Model;
use LeMaX10\Enums\Traits\ModelEnums;

/**
 * Class ExampleModel
 * @package App
 */
class ExampleModel extends Model
{
    use ModelEnums;

    /**
     * @var array
     */
    protected $enums = [
        'status' => ExampleStatusEnum::class
    ];
}
```

ExampleStatusEnum

```
use LeMaX10\Enums\Enum;

/**
 * Class ExampleStatusEnum
 * @package App\Enums
 */
final class ExampleStatusEnum extends Enum
{
    /**
     *
     */
    private const FOO = 'foo';

    /**
     *
     */
    private const BAR = 'bar';
}
```

ExampleTranslatableEnum

```
use LeMaX10\Enums\Enum;
use LeMaX10\Enums\Contracts\Translatable;

/**
 * Class ExampleStatusEnum
 * @package App\Enums
 */
final class ExampleStatusEnum extends Enum implements Translatable
{
    /**
     *
     */
    private const FOO = 'foo';

    /**
     *
     */
    private const BAR = 'bar';

    /**
     * Translatable value
     * @return string
     */
    public function getTransValue(): string
    {
        return trans('enum.'. $this->value);
    }
}
```

Request Validation Rules

```
