树枝中调用控制器功能的 Symfony4 按钮不起作用
Symfony4 button in twig to call function in a controller doesn't work
我按照 this 创建了一个调用函数的按钮,但它不起作用。
没有错误消息,重定向有效。但是订单状态没有改变....
谁能找出问题所在?
我在树枝上的按钮
<a href="{{ path('change_order_status', { id : NewOrder.id }) }}" class="btn btn-primary">change status</a>
我的控制器
/**
* @param order $target
*
* @Route("/admin/order", name="change_order_status")
*/
public function changeOrderStatus(order $target)
{
echo dump($target);
if (!$target instanceof Order) {
return;
}
$OrderStatus = $this->orderStatusRepository->find(OrderStatus::IN_PROGRESS);
$target->setOrderStatus($OrderStatus);
$target->setOrderDate(new \DateTime());
$em = $this->getEntityManager();
$em->persist($Order);
$em->flush();
}
}
代码中存在多个缺陷:
- 您的控制器没有重定向(甚至没有响应),因此如果代码完整,您看到的重定向将不会来自 Symfony。
- 操作参数
$target
带有 order
类型提示,但对象的类型为 Order
(大小写很重要!)
- 当类型提示正确时,
instanceof
检查是否冗余
- 你坚持
$Order
而不是$target
所以变量名是错误的
我按照 this 创建了一个调用函数的按钮,但它不起作用。 没有错误消息,重定向有效。但是订单状态没有改变.... 谁能找出问题所在?
我在树枝上的按钮
<a href="{{ path('change_order_status', { id : NewOrder.id }) }}" class="btn btn-primary">change status</a>
我的控制器
/**
* @param order $target
*
* @Route("/admin/order", name="change_order_status")
*/
public function changeOrderStatus(order $target)
{
echo dump($target);
if (!$target instanceof Order) {
return;
}
$OrderStatus = $this->orderStatusRepository->find(OrderStatus::IN_PROGRESS);
$target->setOrderStatus($OrderStatus);
$target->setOrderDate(new \DateTime());
$em = $this->getEntityManager();
$em->persist($Order);
$em->flush();
}
}
代码中存在多个缺陷:
- 您的控制器没有重定向(甚至没有响应),因此如果代码完整,您看到的重定向将不会来自 Symfony。
- 操作参数
$target
带有order
类型提示,但对象的类型为Order
(大小写很重要!)- 当类型提示正确时,
instanceof
检查是否冗余
- 当类型提示正确时,
- 你坚持
$Order
而不是$target
所以变量名是错误的