В моей сущности я определил цвет поля с помощью обратного вызова. Цвета могут быть выбраны только в списке ЦВЕТОВ (const
в этом class
)
/**
* @ORM\Entity(repositoryClass="App\Repository\EventTagRepository")
*/
class EventTag
{
const COLORS = [
"primary"=>"primary",
"secondary"=>"secondary",
"success"=> "success",
"danger"=>"danger",
"warning"=>"warning",
"info"=>"info",
"light"=>"light",
"dark"=>"dark"
];
/**
* @ORM\Column(type="string", length=255)
* @Assert\Choice(callback="getColors")
*/
private $color;
public function getColors()
{
return $this::COLORS;
}
Когда я создаю форму в easy-admin, я хотел бы получить доступ к этому обратному вызову впараметры типа choice
, чтобы пользователь не мог выбрать неправильный цвет.
EventTag:
class: App\Entity\EventTag
list:
actions: ['-delete']
form:
fields:
- { type: 'group', label: 'Content', icon: 'pencil-alt', columns: 8 }
- 'name'
- { property: 'color', type: 'choice', type_options: { expanded: false, multiple: false, choices: 'colors'} }
К сожалению, в type_options
я не нашел способа доступа к свойствам объекта вместо поиска getColors()
, IsColors()
, hasColors()
методы, он только читает строку.
Можно ли сделать это по-другому?