如何在Symfony中持久保存CollectionType?
我发现以下错误: 通过关系“App\entity\Item#sizeqtyatr”找到了一个新实体,该关系未配置为级联实体:App\entity的持久化操作\SizeQtyAttributes@0000000078a80e200000000074b3b674. 要解决此问题,请对此未知实体显式调用EntityManager#persist(),或在映射中配置cascade persist此关联,例如@manytone(..,cascade={“persist”})。如果无法找到导致问题的实体,请执行“App\entity\SizeQtyAttributes#uu toString()”以获取线索 类项目如何在Symfony中持久保存CollectionType?,symfony,doctrine-orm,symfony5,Symfony,Doctrine Orm,Symfony5,我发现以下错误: 通过关系“App\entity\Item#sizeqtyatr”找到了一个新实体,该关系未配置为级联实体:App\entity的持久化操作\SizeQtyAttributes@0000000078a80e200000000074b3b674. 要解决此问题,请对此未知实体显式调用EntityManager#persist(),或在映射中配置cascade persist此关联,例如@manytone(..,cascade={“persist”})。如果无法找到导致问题的实体,请
/**
* @ORM\ManyToOne(targetEntity=Category::class, inversedBy="items")
*/
private $category;
/**
* @ORM\OneToMany(targetEntity=SizeQtyAttributes::class, mappedBy="item")
*/
private $sizeQtyAttr;
类大小属性
/**
* @ORM\ManyToOne(targetEntity=Item::class, inversedBy="SizeQtyAttr")
*/
private $item;
控制器
public function postProduct(Request $request, SluggerInterface $slugger, CategoryTreeAdminOptionList $categories): Response
{
$item = new Item();
$form = $this->createForm(ItemType::class, $item);
$categories->getCategoryList($categories->buildTree());
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$item = $form->getData();
$item_category = $this->getDoctrine()->getRepository(Category::class)->find($request->request->get('item_category'));
//dd($item->getSizeQtyAttributes()->getAttrName());
$file_image = $form->get('image')->getData();
if($file_image){
//image stuff
}
$item->setCategory($item_category);
$em = $this->getDoctrine()->getManager();
$em->persist($item);
$em->flush();
return $this->redirectToRoute('post_product');
}
我尝试添加cascade={“persist”},但没有成功。我错过什么了吗?请提供帮助。您可以发布您的实体,包括
级联?它应该是@ORM\OneToMany(targetEntity=SizeQtyAttributes::class,mappedBy=“item”,cascade={“persist”})
我注意到的另一件事是,您不需要行$item=$form->getData()代码>。由于您已经在上面几行创建了$item对象并将其传递给表单,因此Symfony将使用表单数据为您处理填充。@fun2life感谢您,它成功了。我为此转了几天的头。。