我是symfony的新手,想要寻求帮助,我来自阿根廷,所以原谅我的英语不好。 este es mi routing.yml:
Agregar_pedido:
pattern: /agregarPedido/{id}
defaults: { _controller: AtajoBundle:Tablas:agregarPedido }
这是我的TablasController.php:
public function agregarPedido($id)
{
$em = $this->getDoctrine()->getManager();
$usuario = $em->getRepository('AtajoBundle:User')->find($id);
$pedido = new Pedido();
$pedido->setProducto('Yeso');
$pedido->setCantidad('200');
$pedido->setValor('50');
$pedido->setUnidad('kg');
$pedido->setFecha(new \Datetime());
$pedido->setUser($usuario);
//$em->persist("$usuario");
$em->persist("$pedido");
$em->flush();
return new Response('El nuevo pedido agregado es el ' . $pedido->getId() . ' al cliente '. $id . '');
}
出现的错误如下:
URI" / agregarPedido / 1"的控制器不可赎回。
答案 0 :(得分:5)
我相信你应该将Action一词附加到你的方法上,使其成为一个有效的行动:
public function agregarPedidoAction($id)
答案 1 :(得分:1)
我会用西班牙语回复以接近Geronimo。
Efectivamentenecesitasañadirlapalabra Action,tambiéntendríasquequitar las comillas del persist y cambiar pattern por path。
El resultadofinalsería:
Agregar_pedido:
path: /agregarPedido/{id}
defaults: { _controller: AtajoBundle:Tablas:agregarPedido }
public function agregarPedidoAction($id)
{
$em = $this->getDoctrine()->getManager();
$usuario = $em->getRepository('AtajoBundle:User')->find($id);
$pedido = new Pedido();
$pedido->setProducto('Yeso');
$pedido->setCantidad('200');
$pedido->setValor('50');
$pedido->setUnidad('kg');
$pedido->setFecha(new \Datetime());
$pedido->setUser($usuario);
$em->persist($pedido);
$em->flush();
return new Response('El nuevo pedido agregado es el '.$pedido->getId().' al cliente '.$id);
}
Ahorayadeberíafuncionarperomegustaríahacertealgunas recomendaciones ybuenasprácticasquese puedenveraquíhttp://librosweb.es/libro/buenas_practicas_symfony yaquíellibro oficialenespañolhttp://librosweb.es/libro/symfony_2_4/
Enelcódigobuemuestras se pueden implementar dos buenas practicas:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
)Elcódigoquedaríaasí:
/**
* @Route("/agregarPedido/{id}", name="Agregar_pedido")
*/
public function agregarPedidoAction(User $usuario)
{
$em = $this->getDoctrine()->getManager();
$pedido = new Pedido();
$pedido->setProducto('Yeso');
$pedido->setCantidad('200');
$pedido->setValor('50');
$pedido->setUnidad('kg');
$pedido->setFecha(new \Datetime());
$pedido->setUser($usuario);
$em->persist($pedido);
$em->flush();
return new Response('El nuevo pedido agregado es el '.$pedido->getId().' al cliente '.$usuario->getId());
}
Espero servirte de ayuda。