PHP code example of cable8mm / enum-getter
1. Go to this page and download the library: Download cable8mm/enum-getter library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cable8mm / enum-getter example snippets
use Laravel\Nova\Fields\Badge;
/**
* @see https://nova.laravel.com/docs/v5/resources/fields#badge-field
*/
Badge::make(__('Status'), 'status')
->map(Status::array(value: 'info'))
->labels(Status::array()),
use Laravel\Nova\Fields\Select;
/**
* @see https://nova.laravel.com/docs/v5/resources/fields#select-field
*/
Select::make(__('Status'), 'status')
->options(Status::array())
->displayUsingLabels(),
use Laravel\Nova\Fields\Status;
/**
* @see https://nova.laravel.com/docs/v5/resources/fields#status-field
*/
Status::make(__('Status'), 'status')
->loadingWhen(Status::loadingWhen())
->failedWhen(Status::failedWhen())
->displayUsing(function ($value) {
return Status::{$value}->value() ?? '-';
}),
// In Nova factory file
public function definition(): array
{
return [
'size' => fake()->randomElement(Status::keys()),
];
}
use Cable8mm\EnumGetter\EnumGetter;
enum Size: string
{
use EnumGetter;
case LARGE = 'large';
case MIDDLE = 'middle';
case SMALL = 'small';
}
print Size::LARGE->name; //=> 'LARGE'
print Size::LARGE->key(); //=> 'large'
print Size::LARGE->value; //=> 'large'
print Size::has('large'); //=> true
print Size::has('larger'); //=> false
print Size::has(value: 'large'); //=> true
print Size::names(); //=> ['LARGE', 'MIDDLE', 'SMALL']
print Size::keys(); //=> ['large', 'middle', 'small']
print Size::values(); //=> ['large', 'middle', 'small']
print Size::array(); //=> ['large'=>'large', 'middle'=>'middle', 'small'=>'small']
print Size::reverse(); //=> ['large'=>'large', 'middle'=>'middle', 'small'=>'small']
print Size::of('LARGE'); //=> Size::LARGE
print Size::from('large'); //=> Size::LARGE
use Cable8mm\EnumGetter\EnumGetter;
enum Size2: string
{
use EnumGetter;
case LARGE = 'large';
case MIDDLE = 'middle';
case SMALL = 'small';
public function value(): string
{
return match ($this) {
self::LARGE => __('large'), // grand
self::MIDDLE => __('middle'), // milieu
self::SMALL => __('small'), // petit(e)
};
}
}
print Size2::LARGE->name; //=> 'LARGE'
print Size2::LARGE->key(); //=> 'large'
print Size2::LARGE->value; //=> 'large'
print Size::has('large'); //=> true
print Size::has('larger'); //=> false
print Size::has(value: 'large'); //=> false
print Size::has(value: 'grand'); //=> true
print Size2::LARGE->value(); //=> 'grand'
print Size2::names(); //=> ['LARGE', 'MIDDLE', 'SMALL']
print Size2::keys(); //=> ['large', 'middle', 'small']
print Size2::values(); //=> ['grand', 'milieu', 'petit(e)']
print Size2::array(); //=> ['large'=>'grand', 'middle'=>'milieu', 'small'=>'petit(e)']
print Size2::reverse(); //=> ['grand'=>'large', 'milieu'=>'middle', 'petit(e)'=>'small']
print Size2::of('LARGE'); //=> Size::LARGE
print Size2::from('large'); //=> Size::LARGE