如何在Symfony中持久保存CollectionType?

如何在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”})。如果无法找到导致问题的实体,请

我发现以下错误:

通过关系“App\entity\Item#sizeqtyatr”找到了一个新实体,该关系未配置为级联实体:App\entity的持久化操作\SizeQtyAttributes@0000000078a80e200000000074b3b674. 要解决此问题,请对此未知实体显式调用EntityManager#persist(),或在映射中配置cascade persist此关联,例如@manytone(..,cascade={“persist”})。如果无法找到导致问题的实体,请执行“App\entity\SizeQtyAttributes#uu toString()”以获取线索

类项目

/**
 * @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感谢您,它成功了。我为此转了几天的头。。