controller - 树枝中用于调用控制器功能的 Symfony4 按钮不起作用
问题描述
我按照这个创建了一个按钮来调用一个函数,但它不起作用。没有错误消息并且重定向有效。但是订单状态并没有改变....谁能找到它的问题所在?
我在树枝上的按钮
<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。
- action 参数
$target
是类型提示的,order
但对象是类型的Order
(大小写很重要!)- 当类型提示正确时,
instanceof
检查是否冗余
- 当类型提示正确时,
- 你坚持
$Order
但不是$target
所以变量名是错误的
推荐阅读
- python - 使用 Python 获取表值
- node.js - 为基于 create-react-app 的项目运行 npm build 后在运行时读取环境变量
- swift - 卡在塞满 UIStackView 的非滚动 UIScrollView
- c# - 在 ASP.NET Core MVC 中使用 Prometheus 的示例项目?
- javascript - 环回过滤器并包含
- wechat - 微信访问令牌:错误40066
- reactjs - React 中兄弟之间的通信
- java - org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator 在eclipse中生成java文件
- jquery - 想要建立一个带有子节点和子子节点的可扩展链接的树结构
- visual-studio - node-gyp - 如何生成包含 NatVis 文件的 Visual Studio 项目