Динамическая загрузка значений в easy admin
В EasyAdmin в сущности товара есть связанные поля - свойства. Их может быть много, так что используется CollectionField и как тип CatalogPropertyField. Суть в том, что в CatalogPropertyField есть три поля, одно это тип свойства (бренд, материал и тп), два других - значение. Тип может быть строкой или выбором из уже созданных значений. В случае, если выбирается второе у нас есть выбор из возможных значений, которые грузятся из таблицы при формировании полей в easyadmin
->add('value_id', EntityType::class, [
'label' => 'Значение (выборка)',
'class' => Value::class,
'choice_value' => function (?Value $entity): string {
return $entity ? $entity->getId() : '';
}
])
Проблема в том, что грузятся все значения. Условная ситуация: выбираю тип бренд, мне выпадает список, в котором лежат значения и для метариалов и брендов и категорий и тд. Пытался реализовать через ajax с подгрузкой списка после выбора типа
...
success: function (response) {
console.log(response)
if (response.type === 'list') {
let html_data = '<div class="" id="property-select-' + block_id + '">' +
'<div class="form-group"><label class="form-control-label"' +
' for="Catalog_catalog_item_properties_' + block_id + '_value_id-ts-control"' +
' id="Catalog_catalog_item_properties_' + block_id + '_value_id-ts-label">Значение (выборка)</label>' +
'<div class="form-widget">' +
...
Html вставляется, select с нужными значениями есть, но после выбора и апдейта easy admin не дает получить данные, показывает ошибку "Эта форма не должна содержать дополнительных полей.".
Знаю, что за это отвечает настройка allow_extra_fields
, но я ее и так и так уже крутил, вставлял куда только можно (и в изначальную форму в configureFields и в поле CatalogPropertyField), не помогает.
Подскажите, как могу реализовать этот момент. Может что-то не так делаю с allow_extra_fields
, может какие-то другие опции есть