У меня есть ShopCategoryCollectionType, который хранит только ShopCategoryType как коллекцию.
Мне нужно получить доступ к идентификатору одной ShopCategory, чтобы сгенерировать путь редактирования для сущности.
Я создал собственный виджет для отображенияShopCategoryWidget
{{ dump(form.vars.data) }}
возвращает:
ShopCategory {#7325 ▼
-id: 13
-name: "items items"
-slug: "items-items"
-status: 1
-products: PersistentCollection {#7445 ▶}
-position: 0
}
, но когда я пытаюсь получить доступ к атрибуту сущности
{{ dump(form.vars.data.anyAttribute) }}
, я получил:
Impossible to access an attribute ("name") on a null variable.
Как мне получить атрибут id объекта ShopCategory?
edit:
Я обнаружил проблему, почему это происходит.
Я помещаю данные в ShopCategoryCollectionType
public function onPreSetData(FormEvent $event)
{
$data = [
'categories' => $this->categoryRepository->findAll()
];
$event->setData($data);
}
Но когда я пытаюсь получить данные:
class ShopCategoryType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
/** fields */
->addEventListener(FormEvents::POST_SET_DATA, function(FormEvent $formEvent) {
dump($formEvent->getData());
});
}
Результат таков:
In ShopCategoryType.php line 30:
null
In ShopCategoryType.php line 30:
ShopCategory {#7574 ▼
-id: 20
In ShopCategoryType.php line 30:
ShopCategory {#7575 ▼
-id: 21
In ShopCategoryType.php line 30:
ShopCategory {#7576 ▼
-id: 22
/** and rest of objects */
}
Почему я получаю нулевое значение при первом сбросе?