2015-04-17 8 views
0

Я хочу сделать простое обновление флага для статуса в моей базе данных, когда я нажимаю кнопку «valided» с доктриной, но значение не изменяется. Просто обновить значение состояния поля до 20. Моя база данных:Обновление столбца с доктриной

enter image description here

Entity спрос:

/** 
    * @var \Status 
    * 
    * @ORM\ManyToOne(targetEntity="Status") 
    * @ORM\JoinColumns({ 
    * @ORM\JoinColumn(name="status_idstatus", referencedColumnName="id_status") 
    * }) 
    */ 
    private $statusstatus; 


    /** 
* Set statusstatus 
* 
* @param \OrderIT\Bundle\OrderBundle\Entity\Status $statusstatus 
* @return Demand 
*/ 
public function setStatusstatus(\OrderIT\Bundle\OrderBundle\Entity\Status $statusstatus = null) 
{ 
    $this->statusstatus = $statusstatus; 

    return $this; 
} 

/** 
* Get statusstatus 
* 
* @return \OrderIT\Bundle\OrderBundle\Entity\Status 
*/ 
public function getStatusstatus() 
{ 
    return $this->statusstatus; 
} 

спрос Контроллер

/** 
* Valid a Demand entity. 
* 
* @Route("/{idDemand}/valid", name="demand_valid") 
* @Method("GET") 
*/ 
public function validAction($idDemand) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $demand = $em->getRepository('OrderBundle:Demand')->find($idDemand); 

    if (!$demand) { 
     throw $this->createNotFoundException('Unable to find Demand entity.'); 
    } 

    $demand->setStatusstatus = ('20'); 
    $em->persist($demand); 
    $em->flush(); 
    return $this->redirect($this->generateUrl('listing')); 
} 

ответ

1

Вы делаете это неправильно .. вы должны вставить объект статуса в метод setter:

public function validAction($idDemand) 
{ 
    $em = $this->getDoctrine()->getManager(); 
    $demand = $em->getRepository('OrderBundle:Demand')->find($idDemand); 
    if (!$demand) { 
     throw $this->createNotFoundException('Unable to find Demand entity.'); 
    } 

    $status= $em->getRepository('OrderBundle:Status')->find(20); 
    if (!$status) { 
     $status = new Status(); 
     $status->setId(20); 
     /** or new Status(20) depends on your implementation */ 
    } 

    $demand->setStatusstatus($status); 
    $em->persist($demand); 
    $em->flush(); 
    return $this->redirect($this->generateUrl('listing')); 
} 
Смежные вопросы