在不同的2个实体symfony中提交一个值

时间:2015-11-13 09:27:59

标签: php forms symfony doctrine

我试图将1个表单提交到2个表格中。

这是我的表格:

  <div class="control-group">
       <label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>Naam</label>

       <div class="controls">
            {{ form_widget(form.product) }}
            {{ form_errors(form.product) }}
       </div>
  </div>
  <div class="control-group">
       <label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>Aantal</label>

       <div class="controls">
            {{ form_widget(form.amount) }}
            {{ form_errors(form.amount) }}
       </div>
   </div>
   <div class="control-group">
        <label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>Serienummer</label>

        <div class="controls">
             {{ form_widget(form.serials) }}
             {{ form_errors(form.serials) }}
        </div>
   </div>

Formbuilder:

 $builder->add("amount", "number", array("label" => "Aantal"));
 $builder->add("product", "text", array("attr" => array("autocomplete" => "off", "data-provide" => "typeahead", "data-items" => "15", "data-source" => $dataSource), 'mapped' => false));
 $builder->add("price", "number", array("label" => "Aangepaste prijs", 'mapped' => false));
 $builder->add("serials","number", array("label" => "Serienummer"));

这是我的ORM的一部分:

   oneToMany:
        serials:
            targetEntity: SerialNumber
            mappedBy: BookingEntry

以下是我的&#39; BookingEntry&#39;的一部分。实体:

class BookingEntry
{    
    public $serials;

    public function getSerials()
    {
        return $this->serials;
    }
    public function setSerials($serials)
    {
        $this->serials = $serials;
        return $this;
    }

以下是我的序列号的一部分&#39;实体:

class SerialNumber
{
        /**
         * @var string $serial_nr
         */
        private $serial_nr;
        /**
         * Set serial_nr
         *
         * @param string $serial_nr
         * @return SerialNumber
         */
        public function setSerial_nr($serial_nr)
        {
            $this->serial_nr = $serial_nr;

            return $this;
        }

        /**
         * Get serial_nr
         *
         * @return string 
         */
        public function getSerial_nr()
        {
            return $this->serial_nr;
        }
    }

我的BookingEntry标签看起来像这样:

  • PRODUCT_NAME
  • 金额

我的SerialNumber表格如下所示:

  • bookingenrty_id
  • serial_nr

现在我想提交我在SerialNumber表格中插入表格的序列号。

我在控制器中试过这个:

$serialnumber = new SerialNumber();
$serialnumber->setSerials($form->get("serials")->getData());
$em->persist($serialnumber);

和此:

$bookingentry= new bookingEntry();
$bookingentry->setSerials($form->get("serials")->getData());
$em->persist($bookingentry);

但是我一直收到一条错误消息,告诉我我的查询是空的。

但是当我这样做时:

$serialnumber = new SerialNumber();
$serialnumber->setSerials($form->get("amount")->getData());
$em->persist($serialnumber);

价值关闭&#39;金额&#39;插入&#39; serial_nr&#39;字段。

有人有任何想法吗?

0 个答案:

没有答案