gpt4 book ai didi

php - Symfony2 路由 : Method Not Allowed (Allow: {Method})

转载 作者:可可西里 更新时间:2023-11-01 13:19:14 27 4
gpt4 key购买 nike

所以在 routing.yml 中我定义了以下路由,以便编辑和删除特定设置:

路由.yml:

settings.editDefaults:
path: settings/{id}/defaults/edit/{widgetType}
defaults: { _controller: AppBundle:Settings:editDefaults }
methods: [POST, PUT]

settings.deleteDefaults:
path: settings/{id}/defaults/delete/{widgetType}
defaults: { _controller: AppBundle:Settings:deleteDefaults }
methods: [DELETE]

在我的 Controller 中,我定义了正确的操作:SettingController.php:

/**
* edit the default settings of a hotel/widget
*/
public function editDefaultsAction(Request $request)
{
//Edit logic
}

/**
* delete a default setting of a hotel/widget
*/
public function deleteDefaultsAction($hotelId, $widgetType)
{
//Delete logic
}

在第二个操作中,我只需要传递 idwidgetType,这样我就可以查询并删除所选记录。

当我去任何一条路线时,我得到以下信息:

编辑路线错误:

No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default": Method Not Allowed (Allow: POST, PUT)

删除路由错误:

No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default": Method Not Allowed (Allow: DELETE)

但是当我移除一个并留下另一个时,它们工作正常。我假设它是相似的路径定义?我是否有可能保持相同的路径而不会出现此错误?我有什么不明白的?

谢谢你的帮助,Anth

最佳答案

您是否使用 CRUD 生成操作?

我找到了解决这个问题的方法。

/**
* Deletes a Preisliste entity.
*
*/
public function deleteAction(Request $request, $id)
{
/*$form = $this->createDeleteForm($id);
$form->handleRequest($request);

if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('MandantBundle:Preisliste')->find($id);

if (!$entity) {
throw $this->createNotFoundException('Unable to find Preisliste entity.');
}

$em->remove($entity);
$em->flush();
}

return $this->redirect($this->generateUrl('preisliste'));*/

$em = $this->getDoctrine()->getManager();
$entity = $em->getRepository('MandantBundle:Preisliste')->find($id);

if (!$entity) {
throw $this->createNotFoundException('Unable to find Preisliste entity.');
}

$em->remove($entity);
$em->flush();


return $this->redirect($this->generateUrl('preisliste'));
}

注释代码来自 CRUD,不起作用。我得到同样的错误(没有找到“GET ...”的路由)我不知道为什么 Symfony 试图使用一个表单来删除。仅删除实体对我来说是正确的方法。

关于php - Symfony2 路由 : Method Not Allowed (Allow: {Method}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30956943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com