Search code examples
phpsymfonyinsertsymfony3

Insert into a symfony 3 table


I need to make a simple insertion in the database,

Here is the code in the controller:

    public function verifCreateOrder(Request $req){
        $store = 1;
        $provider =2;
        $creation =  $creation_start = $req->get('creation_start');
        $delivery = $creation_start = $req->get('creation_start');

        $em = $this->getDoctrine()->getManager();

        $order = new OrderList();
        $order->setNumStore($store);
        $order->setNumProvider($provider);
        $order->setCreation($creation);
        $order->setDelivery($delivery);

        $em->persist($order);
        $em->flush();
        die();
        return $this->redirectToRoute('search.view');
    }

The code of the OrderList entity :

class OrderList
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var int
     *
     * @ORM\ManyToOne(targetEntity="Provider")
     * @ORM\JoinColumn(name="num_provider", referencedColumnName="id")
     */
    private $numProvider;

    /**
     * @var int
     *
     * @ORM\ManyToOne(targetEntity="Store")
     * @ORM\JoinColumn(name="num_store", referencedColumnName="id")
     */
    private $numStore;

    /**
     * @return int
     */
    public function getNumStore()
    {
        return $this->numStore;
    }

    /**
     * @param int $numStore
     */
    public function setNumStore($numStore)
    {
        $this->numStore = $numStore;
    }

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="creation", type="date")
     */
    private $creation;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="delivery", type="date")
     */
    private $delivery;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="last_update", type="date", nullable=true)
     */
    private $lastUpdate;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="emission", type="date", nullable=true)
     */
    private $emission;

    /**
     * @var int
     *
     * @ORM\Column(name="reduction_1", type="integer", nullable=true)
     */
    private $reduction1;

    /**
     * @var int
     *
     * @ORM\Column(name="reduction_2", type="integer", nullable=true)
     */
    private $reduction2;

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

Here is the error returned by symfony:

Expected value of type "AppBundle\Entity\Provider" for association field "AppBundle\Entity\OrderList#$numProvider", got "integer" instead.

Please help me resolve this error.


Solution

  • I am also new to php but, you set $provider to be a integer = 2, and your relation expect object Provider $provider.