<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:在一对多的双向关系中,如何从反面保存?

        时间:2024-08-09

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

                  上一篇:Symfony 3 连接到多个数据库 下一篇:Doctrine 和 Symfony 中的 MySQL 用户定义变量

                  相关文章

                    <legend id='Nirzt'><style id='Nirzt'><dir id='Nirzt'><q id='Nirzt'></q></dir></style></legend>
                    1. <tfoot id='Nirzt'></tfoot>
                    2. <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>

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

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