Symfony / doctrine insert related objects

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Opdracht: DevOps Expert/Ontwikkelaar @ Assen

2021-03-23 iSense Opdracht: DevOps Expert/Ontwikkelaar Ben jij een ervaren DevOps expert / applicatiebeheerder-ontwikkelaar? Heb jij ervaring met het analyseren van productieproblemen en het oplossen hiervan? Lees dan snel verder! ISBI49414 Organisatie De organisatie is een van de grotere ICT-dienstverleners binnen de Rijksoverheid. Zij ondersteunen de primaire processen van diverse uitvoeringsorganisaties en de ministeries. Taken Als DevOps expert / applicatiebeheerder-ontwikkelaar ben jij verantwoordelijk voor een set van applicaties. Met jouw kennis en vaardigheden ben je tot het volgende in staat: Je analyseert productieproblemen en lost ze op, al dan niet in samenwerking met andere afdelingen. Je bouwt kleine, maar ook grote

Bekijk vacature »

Jasper DS

Jasper DS

15/01/2015 16:01:17
Quote Anchor link
Hoi,

ik heb een object "Order" en dat object heeft een array van orderDetails (classe: "OrderDetail").

Bij een nieuwe order wil ik zowel de order als de orderdetails in de database stoppen, en dat lukt perfect behalve de relatie tussen de twee objecten. Het "order_id" veld in de order_detail tabel blijft leeg. Hoe kan ik dat voorkomen?

Code waar ik de insert doe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$order = $form->getData();
$this->om->persist($order);
$this->om->flush($order);


Dump van $order
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
object(Jds\ApiBundle\Entity\Order)[439]
  protected 'id' => null
  protected 'orderDate' =>
    object(DateTime)[611]
      public 'date' => string '2015-01-15 13:42:00' (length=19)
      public 'timezone_type' => int 3
      public 'timezone' => string 'Europe/Paris' (length=12)
  protected 'orderDetails' =>
    object(Doctrine\Common\Collections\ArrayCollection)[440]
      private '_elements' =>
        array (size=2)
          0 =>
            object(Jds\ApiBundle\Entity\OrderDetail)[667]
              protected 'id' => null
              protected 'product' =>
                object(Jds\ApiBundle\Entity\Product)[736]
                  ...
              protected 'price' => float 1
              protected 'amount' => int 2
              protected 'order' => null
          1 =>
            object(Jds\ApiBundle\Entity\OrderDetail)[702]
              protected 'id' => null
              protected 'product' =>
                object(Jds\ApiBundle\Entity\Product)[749]
                  ...
              protected 'price' => float 1
              protected 'amount' => int 5
              protected 'order' => null

Order-entity:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
/**
 * @ORM\Entity()
 * @ORM\Table(name="the_order")
 */

class Order implements OrderInterface
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", length=6)
     * @ORM\GeneratedValue(strategy="AUTO")
     * @Serializer\Groups({"orderList"})
     */

    protected $id;

    /**
     * @ORM\Column(type="datetime", nullable=false)
     * @Serializer\Groups({"orderList"})
     */

    protected $orderDate;

    //protected $orderedBy;

    //protected $handledBy;

    /**
     * @ORM\OneToMany(targetEntity="OrderDetail", mappedBy="order")
     * @Serializer\Groups({"orderList"})
     **/

    protected $orderDetails;


OrderDetail-entity
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
/**
 * @ORM\Entity()
 * @ORM\Table(name="order_detail")
 */

class OrderDetail
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer", length=8)
     * @ORM\GeneratedValue(strategy="AUTO")
     */

    protected $id;

    /**
     * @ORM\ManyToOne(targetEntity="Product")
     * @Serializer\Groups({"orderList"})
     */

    protected $product;

    /**
     * @ORM\Column(type="decimal", precision=4, scale=2)
     */

    protected $price;

    /**
     * @ORM\Column(type="integer", length=2)
     * @Serializer\Groups({"orderList"})
     */

    protected $amount;

    /**
     * @ORM\ManyToOne(targetEntity="Order", inversedBy="orderDetails")
     **/

    protected $order;
Gewijzigd op 15/01/2015 16:03:38 door Jasper DS
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.