ZF2 Doctrine2.4 : One-to-many save association giving foreign key null #5177

Closed
opened 2026-01-22 15:00:43 +01:00 by admin · 4 comments
Owner

Originally created by @ravigupta112 on GitHub (Jul 5, 2016).

Originally assigned to: @Ocramius on GitHub.

Hi,

I am trying to save the data into multiple tables using oneToMany relation, but it gives me null value for a foreign key.

ZF2 and doctrine

Originally created by @ravigupta112 on GitHub (Jul 5, 2016). Originally assigned to: @Ocramius on GitHub. Hi, I am trying to save the data into multiple tables using oneToMany relation, but it gives me null value for a foreign key. **ZF2 and doctrine**
admin added the Invalid label 2026-01-22 15:00:43 +01:00
admin closed this issue 2026-01-22 15:00:43 +01:00
Author
Owner

@ravigupta112 commented on GitHub (Jul 5, 2016):

1 Entity

<?php

use Doctrine\ORM\Mapping as ORM;

/**
 * PhvImage
 *
 * @ORM\Table(name="phv_image", indexes={@ORM\Index(name="suggestion_id", columns={"suggestion_id"})})
 * @ORM\Entity
 */
class PhvImage
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="path", type="string", length=500, nullable=false)
     */
    private $path;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=100, nullable=false)
     */
    private $name;

    /**
     * @var \PhvSuggestion
     *
     * @ORM\ManyToOne(targetEntity="PhvSuggestion", inversedBy="images")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="suggestion_id", referencedColumnName="id")
     * })
     */
    private $suggestion;


    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set path
     *
     * @param string $path
     *
     * @return PhvImage
     */
    public function setPath($path)
    {
        $this->path = $path;

        return $this;
    }

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

    /**
     * Set name
     *
     * @param string $name
     *
     * @return PhvImage
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

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

    /**
     * Set suggestion
     *
     * @param \PhvSuggestion $suggestion
     *
     * @return PhvImage
     */
    public function setSuggestion(\Application\Entity\PhvSuggestion $suggestion = null)
    {
        $this->suggestion = $suggestion;

        return $this;
    }

    /**
     * Get suggestion
     *
     * @return \PhvSuggestion
     */
    public function getSuggestion()
    {
        return $this->suggestion;
    }
}


@ravigupta112 commented on GitHub (Jul 5, 2016): **1 Entity** ``` <?php use Doctrine\ORM\Mapping as ORM; /** * PhvImage * * @ORM\Table(name="phv_image", indexes={@ORM\Index(name="suggestion_id", columns={"suggestion_id"})}) * @ORM\Entity */ class PhvImage { /** * @var integer * * @ORM\Column(name="id", type="bigint", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var string * * @ORM\Column(name="path", type="string", length=500, nullable=false) */ private $path; /** * @var string * * @ORM\Column(name="name", type="string", length=100, nullable=false) */ private $name; /** * @var \PhvSuggestion * * @ORM\ManyToOne(targetEntity="PhvSuggestion", inversedBy="images") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="suggestion_id", referencedColumnName="id") * }) */ private $suggestion; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set path * * @param string $path * * @return PhvImage */ public function setPath($path) { $this->path = $path; return $this; } /** * Get path * * @return string */ public function getPath() { return $this->path; } /** * Set name * * @param string $name * * @return PhvImage */ public function setName($name) { $this->name = $name; return $this; } /** * Get name * * @return string */ public function getName() { return $this->name; } /** * Set suggestion * * @param \PhvSuggestion $suggestion * * @return PhvImage */ public function setSuggestion(\Application\Entity\PhvSuggestion $suggestion = null) { $this->suggestion = $suggestion; return $this; } /** * Get suggestion * * @return \PhvSuggestion */ public function getSuggestion() { return $this->suggestion; } } ```
Author
Owner

@ravigupta112 commented on GitHub (Jul 5, 2016):

2 Entity

<?php

namespace Application\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * PhvSuggestion
 *
 * @ORM\Table(name="phv_suggestion", indexes={@ORM\Index(name="user_id", columns={"user_id"})})
 * @ORM\Entity
 */
class PhvSuggestion extends Entity
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    public $id;

    /**
     * @var string
     *
     * @ORM\Column(name="subject", type="string", length=500, nullable=false)
     */
    private $subject;

    /**
     * @var string
     *
     * @ORM\Column(name="description", type="text", length=65535, nullable=false)
     */
    private $description;

    /**
     * @var \PhvUser
     *
     * @ORM\ManyToOne(targetEntity="PhvUser")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="user_id", referencedColumnName="user_id")
     * })
     */
    private $user;

    /**
     * @ORM\OneToMany(targetEntity="PhvImage", mappedBy="suggestion", cascade={"persist"})
     */
    public $images;

    private $data = null;



    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set subject
     *
     * @param string $subject
     *
     * @return PhvSuggestion
     */
    public function setSubject($subject)
    {
        $this->subject = $subject;

        return $this;
    }

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

    /**
     * Set description
     *
     * @param string $description
     *
     * @return PhvSuggestion
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

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

    /**
     * Set user
     *
     * @param \PhvUser $user
     *
     * @return PhvSuggestion
     */
    public function setUser(PhvUser $user = null)
    {
        $this->user = $user;

        return $this;
    }

    /**
     * Get user
     *
     * @return \PhvUser
     */
    public function getUser()
    {
        return $this->user;
    }



    public function setImages($images){
        $this->images = $images;
        return $this;
    }



    public function getImages() {
        return $this->images;
    }


}


@ravigupta112 commented on GitHub (Jul 5, 2016): **2 Entity** ``` <?php namespace Application\Entity; use Doctrine\ORM\Mapping as ORM; /** * PhvSuggestion * * @ORM\Table(name="phv_suggestion", indexes={@ORM\Index(name="user_id", columns={"user_id"})}) * @ORM\Entity */ class PhvSuggestion extends Entity { /** * @var integer * * @ORM\Column(name="id", type="bigint", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ public $id; /** * @var string * * @ORM\Column(name="subject", type="string", length=500, nullable=false) */ private $subject; /** * @var string * * @ORM\Column(name="description", type="text", length=65535, nullable=false) */ private $description; /** * @var \PhvUser * * @ORM\ManyToOne(targetEntity="PhvUser") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="user_id", referencedColumnName="user_id") * }) */ private $user; /** * @ORM\OneToMany(targetEntity="PhvImage", mappedBy="suggestion", cascade={"persist"}) */ public $images; private $data = null; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set subject * * @param string $subject * * @return PhvSuggestion */ public function setSubject($subject) { $this->subject = $subject; return $this; } /** * Get subject * * @return string */ public function getSubject() { return $this->subject; } /** * Set description * * @param string $description * * @return PhvSuggestion */ public function setDescription($description) { $this->description = $description; return $this; } /** * Get description * * @return string */ public function getDescription() { return $this->description; } /** * Set user * * @param \PhvUser $user * * @return PhvSuggestion */ public function setUser(PhvUser $user = null) { $this->user = $user; return $this; } /** * Get user * * @return \PhvUser */ public function getUser() { return $this->user; } public function setImages($images){ $this->images = $images; return $this; } public function getImages() { return $this->images; } } ```
Author
Owner

@ravigupta112 commented on GitHub (Jul 5, 2016):

Controller

 public function saveAction() {
        $data = $this->getRequest()->getPost()->toArray();
        $imgObj = new \Application\Entity\PhvImage();
        $imgObj->setPath('test.png');
        $imgObj->setName('test');

        $imgObj2 = new \Application\Entity\PhvImage();
        $imgObj2->setPath('new.png');
        $imgObj2->setName('new');

        $arr = array(
                $imgObj,$imgObj2
        );

    $sugg = new \Application\Entity\PhvSuggestion();
$sugg->setUser(1);
$sugg->setImages($arr);
 $sugg->setDescription('test');
            $sugg->setSubject('sub');
            $em->persist($sugg);
            $em->flush();

    }
@ravigupta112 commented on GitHub (Jul 5, 2016): **Controller** ``` public function saveAction() { $data = $this->getRequest()->getPost()->toArray(); $imgObj = new \Application\Entity\PhvImage(); $imgObj->setPath('test.png'); $imgObj->setName('test'); $imgObj2 = new \Application\Entity\PhvImage(); $imgObj2->setPath('new.png'); $imgObj2->setName('new'); $arr = array( $imgObj,$imgObj2 ); $sugg = new \Application\Entity\PhvSuggestion(); $sugg->setUser(1); $sugg->setImages($arr); $sugg->setDescription('test'); $sugg->setSubject('sub'); $em->persist($sugg); $em->flush(); } ```
Author
Owner

@Ocramius commented on GitHub (Jul 5, 2016):

Closing, since this is not a bug report, but a help request.

Please refer to IRC, the mailing list or stackoverflow, providing a stack trace showing your problem, as well as the complete error message and error type.

@Ocramius commented on GitHub (Jul 5, 2016): Closing, since this is not a bug report, but a help request. Please refer to IRC, the mailing list or stackoverflow, providing a stack trace showing your problem, as well as the complete error message and error type.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#5177