<tfoot id='cPgop'></tfoot>

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

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

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

        <legend id='cPgop'><style id='cPgop'><dir id='cPgop'><q id='cPgop'></q></dir></style></legend>

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

        doctrine2: in a one-to-many bidirectional relationship, how to save from the inverse side?(教义2:在一对多的双向关系中,如何从反面保存?)

          <legend id='osTQw'><style id='osTQw'><dir id='osTQw'><q id='osTQw'></q></dir></style></legend>
          <tfoot id='osTQw'></tfoot>

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

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

                <tbody id='osTQw'></tbody>

                1. 本文介绍了教义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:在一对多的双向关系中,如何从反面保存?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  When should use doctrine ORM and when zend-db-table?(什么时候应该使用学说 ORM,什么时候应该使用 zend-db-table?)
                  Doctrine - self-referencing entity - disable fetching of children(Doctrine - 自引用实体 - 禁用获取子项)
                  Doctrine 2, query inside entities(原则 2,实体内部查询)
                  Complex WHERE clauses using the PHP Doctrine ORM(使用 PHP Doctrine ORM 的复杂 WHERE 子句)
                  Doctrine - OneToMany relation, all result row doesn#39;t fetch in object(Doctrine - OneToMany 关系,所有结果行不获取对象)
                  Doctrine and unrefreshed relationships(教义和未更新的关系)

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

                            <tbody id='Nirzt'></tbody>

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

                            <bdo id='Nirzt'></bdo><ul id='Nirzt'></ul>