我的应用程序通过主机路由处理多个商店,因此几乎每个表都有shop_id
。现在,我有CategoriesType
来管理它们的类别和单独的表单。
$builder->add('categories', 'bootstrap_collection', array(
'type' => $this->categoryType,
'allow_add' => true,
'allow_delete' => true,
'error_bubbling' => false,
));
categoryType是Type
,它是使用当前商店构建的,其中data_class设置为Category实体。但是需要将shop_it正确存储在DB中。
问题是,如何在表单被赋值之前嵌入逻辑来改变对象 - 如何在新实体上使用setShop()。
以下是我如何使用它:
$categoriesForm = $this->createForm(new MenuCategoriesType(
$this->get('form.category_type')
), $catering = $this->getUser()->getCatering());
$categoriesForm->handleRequest($request);
if ($categoriesForm->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($catering);
$em->flush();
}