2017-02-20 146 views
0

我正在嘗試解決symfony項目中的問題。我希望用戶從列中的下拉列表中選擇一個值(完成),然後更新數據庫中的新值。事情是,當我點擊更新值時,它會得到舊值並且不會更新。這裏是PHP代碼從列下拉列表中Symfony更新

/** 
* @Route("/pedidoventa/edit/{id}", name="pventa_edit") 
*/ 
public function editpventaAction($id, Request $request) 
{ 
    $Pedido_Venta = $this->getDoctrine() 
     ->getRepository('AppBundle:Pedido_Venta') 
     ->find($id); 


    $Pedido_Venta->setEstado($Pedido_Venta->getEstado()); 


     //traer los datos 

     $estado = ($Pedido_Venta->getEstado()); 


     $em = $this->getDoctrine()->getManager(); 
     $Pedido_Venta = $em->getRepository('AppBundle:Pedido_Venta')->find($id); 

     $Pedido_Venta->setEstado($estado); 


     $em->flush(); 

     $this->addFlash(
      'notificacion', 
      'Estado Editado' 
     ); 

     return $this->redirectToRoute('pventa_list'); 
    } 

這裏是HTML表格

{% extends 'base.html.twig' %} 

{% block body %} 
    <h2 class="page-header">Pedidos de Venta</h2> 
    <table class="table table-striped"> 
    <thead> 
    <tr> 
    <th>#</th> 
    <th>Fecha - Hora</th> 
    <th>Estado</th> 
    <th>Total</th> 
    </tr> 
    </thead> 
    <tbody> 
    {% for Pedido_Venta in pedidosventa %} 
    <tr> 
    <th scope="row">{{Pedido_Venta.id}}</th> 
    <td><a href="/pedidoventa/details/{{Pedido_Venta.id}}">{{Pedido_Venta.fecha}}</a></td> 
    <td><select> 
      <option selected="selected">{{Pedido_Venta.estado}}</option> 
      <option>Listo</option> 
      <option>Con Demora</option> 
     </select> 
    </td> 
    <td></td> 
    <td> 
    <a href="/pedidoventa/edit/{{Pedido_Venta.id}}" class="btn btn-info">Editar</a> 
    <a href="/pedidoventa/delete/{{Pedido_Venta.id}}" class="btn btn-danger">Eliminar</a> 
    </td> 
    </tr> 
    {% endfor %} 
    </tbody> 
    </table> 
    <a href="/pedidoventa/create" class="btn btn-primary">Nuevo Pedido de Venta</a> 
{% endblock %} 

任何幫助將是非常讚賞

+1

在你的控制器中,你爲什麼得到'Pedido_Venta'並且設置了兩次'estado'值? – goto

回答

2

你只發送ID。看看你的HTML,沒有任何<form>標籤,它正在等待你的下拉列表中的參數。請創建表單來處理您的問題。