Symfony: метод маршрутизации PUT - PullRequest
1 голос
/ 29 апреля 2019

Кто-нибудь знает, почему метод PUT не работает с использованием симфонии PHP?Если я заменяю PUT на POST, все работает нормально

    /**
    * @Route("/api/product/update", name="product_udpate", methods = {"PUT"})
    */

Я читаю переменные, подобные этой

$request = Request::createFromGlobals();
echo $request->request->get('name');

Ошибка: не найден маршрут для «PUT / api / product / update / 23»(404 не найдено)

Ответы [ 3 ]

3 голосов
/ 29 апреля 2019

Проблема в том, что вы неправильно создаете маршрут.По сути, вам нужно добавить «id» в маршрут.

/**
 * @Route("/api/product/update/{id}", name="product_udpate", methods = {"PUT"})
 */
public function updateAction(Request $request, $id)
{
    // Your logic here
    $name = $request->get('name');

}
2 голосов
/ 30 апреля 2019

Вы получили следующую ошибку, потому что вы не настроили маршрут правильно.

error: No route found for "PUT /api/product/update/23" (404 Not Found)

Если вы хотите добавить идентификатор вместе с вашим URL-адресом, вы должны определить его в своем маршруте.Таким образом, вы можете обновить свой маршрут:

  /**
    * @Route("/api/product/update/{id}", name="product_udpate", methods = {"PUT"}, defaults={"id"=null})
    */

0 голосов
/ 29 апреля 2019

Как указано в документации Symfony Как использовать методы HTTP после GET и POST в маршрутах

К сожалению, жизнь не так проста, так как большинство браузеров этого не делаютподдержка отправки запросов PUT и DELETE через атрибут метода в форме HTML.К счастью, Symfony предоставляет вам простой способ обойти это ограничение.Включив параметр _method в строку запроса или параметры HTTP-запроса, Symfony будет использовать его в качестве метода при сопоставлении маршрутов

Так что вам нужно подделать метод следующим образомодин:

<form action='your route'>
  <input type='hidden' name='_method' value='PUT'>
  //do something.......
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...