我有一个 ShopCategoryCollectionType,它仅将 ShopCategoryType 存储为集合。
我需要访问单个 ShopCategory 的 id 来生成实体的编辑路径。
我创建了用于显示 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.
如何获取 ShopCategory 实体的 id 属性?
编辑:
我发现了为什么会发生这种情况的问题。
我将数据放入 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 */ }
为什么我在第一次转储时得到 null?
最佳答案
您可以通过form.vars.value
访问表单twig
中的当前数据
form.vars.value.{fieldName}
例如:
form.vars.value.name
您可以显示以下所有字段名称:
dump(form.vars.value)
关于php - Symfony Form Collection - 如何获取实体 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52906034/