[Error] "Missing value for primary key" when I try to use findOneBy in controller #6144

Closed
opened 2026-01-22 15:27:37 +01:00 by admin · 1 comment
Owner

Originally created by @brunorafaeI on GitHub (Dec 20, 2018).

Originally assigned to: @Ocramius on GitHub.

So, I have this error "Missing value for primary key..." when I try to use the function findOneBy() in controller Symfony 3.4, I have two tables with the same composite keys:

1 grParagraphe - composite keys (idGrpParagraphe, idTypeDocument);

/**
     * @var integer
     *
     * @ORM\Column(name="id_grp_paragraphe", type="smallint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     */
    private $idGrpParagraphe;


    /**
     * @var \SalarieBundle\Entity\Param\ParamTypeDocumentGenere
     *
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     * @ORM\OneToOne(targetEntity="SalarieBundle\Entity\Param\ParamTypeDocumentGenere")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_type_document", referencedColumnName="id_type_document")
     * })
     *
     */
    private $idTypeDocument;

2 Paragraphe - composite keys (idParagraphe, idTypeDocument) that has the join Columns from Group.

    /**
     * @var integer
     *
     * @ORM\Id
     * @ORM\Column(name="id_paragraphe", type="smallint", nullable=false)
     * @ORM\GeneratedValue(strategy="NONE")
     */
    private $idParagraphe;

    /**
     * @var \SalarieBundle\Entity\Param\ParamTypeDocumentGenere
     *
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     * @ORM\OneToOne(targetEntity="SalarieBundle\Entity\Param\ParamTypeDocumentGenere")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_type_document", referencedColumnName="id_type_document")
     * })
     *
     */
    private $idTypeDocument;

    /**
     * @var integer
     *
     * @ORM\Column(name="id_paragraphe_prec", type="smallint", nullable=true)
     */
    private $idParagraphePrec;

    /**
     * @var \SalarieBundle\Entity\ObjDocumentGrpParagraphe
     *
     * @ORM\ManyToOne(targetEntity="SalarieBundle\Entity\ObjDocumentGrpParagraphe", cascade={"persist"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_grp_paragraphe", referencedColumnName="id_grp_paragraphe"),
     *   @ORM\JoinColumn(name="id_type_document", referencedColumnName="id_type_document")
     * })
     *
     */
    private $idGrpParagraphe;

When I use the same function(findOneBy) for get the group, it works very well! No error.

in the controller

 $paragraph = $em->getRepository(ObjDocumentParagraphe::class)
            ->findOneBy([
                'idParagraphe' => $request->get('idParagraphe'),
                'idTypeDocument'  => $request->get('idTypeDocument')
            ]);

I have the values 132 for idParagraphe and 1 for idTypeDocument.

Someone can help me pls?

Originally created by @brunorafaeI on GitHub (Dec 20, 2018). Originally assigned to: @Ocramius on GitHub. So, I have this error "Missing value for primary key..." when I try to use the function findOneBy() in controller Symfony 3.4, I have two tables with the same composite keys: 1 grParagraphe - composite keys (idGrpParagraphe, idTypeDocument); ``` /** * @var integer * * @ORM\Column(name="id_grp_paragraphe", type="smallint", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="NONE") */ private $idGrpParagraphe; /** * @var \SalarieBundle\Entity\Param\ParamTypeDocumentGenere * * @ORM\Id * @ORM\GeneratedValue(strategy="NONE") * @ORM\OneToOne(targetEntity="SalarieBundle\Entity\Param\ParamTypeDocumentGenere") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="id_type_document", referencedColumnName="id_type_document") * }) * */ private $idTypeDocument; ``` 2 Paragraphe - composite keys (idParagraphe, idTypeDocument) that has the join Columns from Group. ``` /** * @var integer * * @ORM\Id * @ORM\Column(name="id_paragraphe", type="smallint", nullable=false) * @ORM\GeneratedValue(strategy="NONE") */ private $idParagraphe; /** * @var \SalarieBundle\Entity\Param\ParamTypeDocumentGenere * * @ORM\Id * @ORM\GeneratedValue(strategy="NONE") * @ORM\OneToOne(targetEntity="SalarieBundle\Entity\Param\ParamTypeDocumentGenere") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="id_type_document", referencedColumnName="id_type_document") * }) * */ private $idTypeDocument; /** * @var integer * * @ORM\Column(name="id_paragraphe_prec", type="smallint", nullable=true) */ private $idParagraphePrec; /** * @var \SalarieBundle\Entity\ObjDocumentGrpParagraphe * * @ORM\ManyToOne(targetEntity="SalarieBundle\Entity\ObjDocumentGrpParagraphe", cascade={"persist"}) * @ORM\JoinColumns({ * @ORM\JoinColumn(name="id_grp_paragraphe", referencedColumnName="id_grp_paragraphe"), * @ORM\JoinColumn(name="id_type_document", referencedColumnName="id_type_document") * }) * */ private $idGrpParagraphe; ``` When I use the same function(findOneBy) for get the group, it works very well! No error. in the controller ``` $paragraph = $em->getRepository(ObjDocumentParagraphe::class) ->findOneBy([ 'idParagraphe' => $request->get('idParagraphe'), 'idTypeDocument' => $request->get('idTypeDocument') ]); ``` I have the values 132 for idParagraphe and 1 for idTypeDocument. Someone can help me pls?
admin added the Question label 2026-01-22 15:27:37 +01:00
admin closed this issue 2026-01-22 15:27:37 +01:00
Author
Owner

@Ocramius commented on GitHub (Dec 20, 2018):

@brunorafaeI what's the stack trace like?

Meanwhile, closing, since this is not an issue.

@Ocramius commented on GitHub (Dec 20, 2018): @brunorafaeI what's the stack trace like? Meanwhile, closing, since this is not an issue.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#6144