Почему пакет Symfony FOSRest не находит нужный контроллер? - PullRequest
3 голосов
/ 02 мая 2019

У меня есть два действия:

/**
 * @Rest\Get("/items/{itemId}")
 */
public function getAction(UuidInterface $id): View

И

/**
 * @Rest\Get("/items/available")
 */
public function getAvailableAction() : View

Дело в том, что когда я пытаюсь вызвать getAvailableAction по ссылке items/available, вызывается getAction. Я предполагаю, что это слово интерпретируется как {itemId} почему-то.

Как мне это решить?

1 Ответ

3 голосов
/ 02 мая 2019

Вы правильно догадались.Просто определите правильное требование:

 /**
  * @Rest\Get("/items/{itemId}", requirements={"itemId" = "\d+"})
  */

Если ваш itemId является UUID , измените регулярное выражение числа с \d+ на [a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12} или упрощенное [a-fA-F0-9\-]{36}.

Не забудьте очистить кеш.

...