<legend id='TmFKt'><style id='TmFKt'><dir id='TmFKt'><q id='TmFKt'></q></dir></style></legend>
    <i id='TmFKt'><tr id='TmFKt'><dt id='TmFKt'><q id='TmFKt'><span id='TmFKt'><b id='TmFKt'><form id='TmFKt'><ins id='TmFKt'></ins><ul id='TmFKt'></ul><sub id='TmFKt'></sub></form><legend id='TmFKt'></legend><bdo id='TmFKt'><pre id='TmFKt'><center id='TmFKt'></center></pre></bdo></b><th id='TmFKt'></th></span></q></dt></tr></i><div id='TmFKt'><tfoot id='TmFKt'></tfoot><dl id='TmFKt'><fieldset id='TmFKt'></fieldset></dl></div>

      <small id='TmFKt'></small><noframes id='TmFKt'>

      <tfoot id='TmFKt'></tfoot>

      • <bdo id='TmFKt'></bdo><ul id='TmFKt'></ul>

      学说2:在一对多的双向关系中,如何从反面保存?

      时间:2023-08-19
      <i id='ePHt2'><tr id='ePHt2'><dt id='ePHt2'><q id='ePHt2'><span id='ePHt2'><b id='ePHt2'><form id='ePHt2'><ins id='ePHt2'></ins><ul id='ePHt2'></ul><sub id='ePHt2'></sub></form><legend id='ePHt2'></legend><bdo id='ePHt2'><pre id='ePHt2'><center id='ePHt2'></center></pre></bdo></b><th id='ePHt2'></th></span></q></dt></tr></i><div id='ePHt2'><tfoot id='ePHt2'></tfoot><dl id='ePHt2'><fieldset id='ePHt2'></fieldset></dl></div>
        <bdo id='ePHt2'></bdo><ul id='ePHt2'></ul>
        1. <tfoot id='ePHt2'></tfoot>

          1. <small id='ePHt2'></small><noframes id='ePHt2'>

              <legend id='ePHt2'><style id='ePHt2'><dir id='ePHt2'><q id='ePHt2'></q></dir></style></legend>
                <tbody id='ePHt2'></tbody>
                本文介绍了学说2:在一对多的双向关系中,如何从反面保存?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我在下面有一对多的双向关系.

                I have the One-to-Many bidirectional relationship below.

                使用 symfony2 任务生成 crud 操作后,当我尝试在新/编辑类别表单中保存与类别关联的产品时,产品未保存...

                After generating the crud actions with a symfony2 task, when I try to save the Products associated to a Category in the new/edit Category form, the products are not saved...

                namespace PruebaFrontendBundleEntity;
                
                use GedmoMappingAnnotation as Gedmo;
                use DoctrineORMMapping as ORM;
                use DoctrineCommonCollectionsArrayCollection;
                
                /**
                 * @ORMEntity
                 * @ORMTable(name="category")
                 */
                class Category
                {
                
                    /**
                     * @var integer $id
                     *
                     * @ORMColumn(name="id", type="integer")
                     * @ORMId
                     * @ORMGeneratedValue(strategy="AUTO")
                     */
                    private $id;
                
                    /**
                     * @ORMOneToMany(targetEntity="Product", mappedBy="category")
                     */
                    protected $products;
                
                    /**
                     * @ORMColumn(name="name")
                     */
                    protected $name;
                
                    public function __construct()
                    {
                        $this->products = new ArrayCollection();
                    }
                
                    public function getId()
                    {
                        return $this->id;
                    }
                
                    public function getName()
                    {
                        return $this->name;
                    }
                
                    public function setName($name)
                    {
                        $this->name = $name;
                    }
                
                    public function __toString()
                    {
                        return $this->name;
                    }
                
                    public function getProducts()
                    {
                        return $this->products;
                    }
                
                    public function setProducts($products)
                    {
                        die("fasdf"); //here is not entering
                        $this->products[] = $products;
                    } 
                
                    public function addProduct($product)
                    {
                        die("rwerwe"); //here is not entering
                        $this->products[] = $product;
                    } 
                }
                

                namespace PruebaFrontendBundleEntity;
                
                use GedmoMappingAnnotation as Gedmo;
                use DoctrineORMMapping as ORM;
                use DoctrineCommonCollectionsArrayCollection;
                
                /**
                 * @ORMEntity
                 * @ORMTable(name="product")
                 */
                class Product
                {
                    /**
                     * @ORMId
                     * @ORMColumn(type="integer")
                     * @ORMGeneratedValue(strategy="AUTO")
                     */
                    protected $id;
                
                    /**
                     * @ORMManyToOne(targetEntity="Category", inversedBy="products")
                     * @ORMJoinColumn(name="category_id", referencedColumnName="id")
                     */
                    protected $category;
                
                    /**
                     * @ORMColumn(type="string", length=100)
                     */
                    protected $name;
                
                
                    public function getId()
                    {
                        return $this->id;
                    }
                
                    public function getName()
                    {
                        return $this->name;
                    }
                
                    public function setName($name)
                    {
                        $this->name =  $name;
                    }
                
                    public function getCategory()
                    {
                        return $this->category;
                    }
                
                    public function setCategory($category)
                    {
                        $this->category = $category;
                    }
                
                    public function __toString()
                    {
                        return $this->name;
                    }
                }
                

                推荐答案

                由于它是双向的,您需要更新双方的关联.

                As its bidirectional you need to update the association on both sides.

                把这个函数加入到Category Entity中(如果你喜欢,你可以叫它addChild):

                Add this function into the Category Entity (you can call it addChild if you like):

                public function addProduct($product)
                {
                    $this->children->add($product);
                }
                

                然后同时更新两个关联:

                And then update both associations at the same time:

                public function setProductCategory($product_category)
                {
                    $this->productCategory = $product_category;  
                    $product_category->addProduct($this);
                }
                

                提示:不要使用 $children/$parent 来描述实体.将其称为 $category/$product,当您想添加另一个父"关系时会遇到问题.

                Tip: Dont use $children / $parent to describe Entities. Call it what it is $category / $product, you'll run into issues when you want to add in another "parent" relationship.

                这篇关于学说2:在一对多的双向关系中,如何从反面保存?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:原则 2:在批处理插入引用其他实体的实体时出现奇怪的行为 下一篇:Symfony 2.3 Gedmo 学说扩展可翻译缓存

                相关文章

                <small id='HzCma'></small><noframes id='HzCma'>

                • <bdo id='HzCma'></bdo><ul id='HzCma'></ul>

              • <i id='HzCma'><tr id='HzCma'><dt id='HzCma'><q id='HzCma'><span id='HzCma'><b id='HzCma'><form id='HzCma'><ins id='HzCma'></ins><ul id='HzCma'></ul><sub id='HzCma'></sub></form><legend id='HzCma'></legend><bdo id='HzCma'><pre id='HzCma'><center id='HzCma'></center></pre></bdo></b><th id='HzCma'></th></span></q></dt></tr></i><div id='HzCma'><tfoot id='HzCma'></tfoot><dl id='HzCma'><fieldset id='HzCma'></fieldset></dl></div>
                <legend id='HzCma'><style id='HzCma'><dir id='HzCma'><q id='HzCma'></q></dir></style></legend>

                  1. <tfoot id='HzCma'></tfoot>