EnumField reference
Usage
The EnumField can be used to restrict string or int values to a fixed set.
Define a \BackedEnum class, use them in an Entity and restrict the values in your RDBMS.
It's not advisable to use ENUM types for integer values, as most RDBMS only support string values and use integers internally. Using a regular INT column is recommended in this case. The BackedEnum will restrict the possible values, unless the database is modified manually.
Examples
Example 1: Creating an input field from an enum
twig
<select name="payment_method">
{% for method in PaymentMethod::cases() %}
<option value="{{ method.value }}">{{ method.name }}</option>
{% endfor %}
</select>Example 2: Setting an Entity value
php
<?php
$batchOrder = new BatchOrderEntity();
$batchOrder->setPaymentMethod(PaymentMethod::PAYPAL);Example 3: Check if a value is valid
php
<?php
$validPaymentMethod = PaymentMethod::tryFrom($userProvidedInput);
// Either check for null
if (is_null($validPaymentMethod)) {
// The input was not a valid payment method
}
// Or check for the class
if($validPaymentMethod instanceof PaymentMethod) {
// The input was a valid payment method
}