【发布时间】:2019-03-15 17:40:18
【问题描述】:
我在 Symfony 4 中发布时删除了一个教义对象的表单有问题。我搜索了这个问题,我只发现我可能需要定义一个服务?我是 symfony 的初学者,所以请不要怪我……我正在使用数据表,并且表单是模态的。当我按下模式中的删除按钮时,它会尝试发布到路线但出现错误:
未找到服务“请求”:您的意思是“请求堆栈”吗?无论如何,“App\Controller\ItemManagement”中的容器是一个较小的服务定位器,只知道“doctrine”、“form.factory”、“http_kernel”、“parameter_bag”、“request_stack”、“router”、“security” .csrf.token_manager”、“session”和“twig”服务。尝试使用依赖注入。
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteit">Delete Item</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
Are you sure you want to delete this item?
<form action="{{ path('delete_item')}}" method="POST" id="theform" >
<input type="hidden" value="" name="itemtodel" id="itemtodel"/>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" form="theform" class="btn btn-danger">Delete</button>
</div>
</div>
</div>
</div>
在控制器中:
/**
* @Route("/delitem", name="delete_item", methods={"POST"});
*/
public function deletetheitem(Request $request)
{
if ($request->isMethod('POST')) {
$itemid = $this->get('request')->request->get('itemtodel');
... deleting item code...
}
}
return $this->redirectToRoute("item_management", [], 301);
}
路由 item_management 在同一个控制器中并且工作正常。我做错了吗?如果你有什么建议我会很感激的,谢谢!!!!
【问题讨论】:
-
您是否在控制器的
use部分指定了请求类?use Symfony\Component\HttpFoundation\Request; -
@EugeneRuban 是的,当然,我也在其他 item_management 路线中使用请求。
-
您需要将行
$itemid = $this->get('request')->request->get('itemtodel');固定为$itemid = $this->request->get('itemtodel'); -
@EugeneRuban 我更改了它,但出现了同样的错误。我正在使用 symfony 4 顺便说一句抱歉我没有提到。
-
哦,对不起,我的错误。需要改成
$itemid = $request->request->get('itemtodel');
标签: forms symfony post service symfony4