Symfony QueryParam с пустым значением
Я пытаюсь использовать QueryParam на моем контроллере Symfony.
Проблема в том, что я не хочу принимать пустые параметры в запросе. Но когда я определяю QueryParam с
@REST\QueryParam(name="test" , description="The test", requirements="\w+", strict=true, nullable=false)
и я пытаюсь позвонить в веб-сервис с mysite.com/test=
это все еще работает.
Что мне нужно сделать, чтобы отказаться от пустого параметра в запросе без тестирования в коде, если параметр пуст или нет
Спасибо
1 ответ
При тестировании, как ни странно, проверка не работала с конфигурацией param_fetcher_listener
просто на true
, но когда я использовал force
вдруг все заработало
# config.yml
fos_rest:
param_fetcher_listener: force
И в контроллере:
/**
* @QueryParam(name="test" , description="The test", requirements="[a-zA-Z]+", strict=true, nullable=false, allowBlank=false)
*/
public function indexAction($test)
{
// replace this example code with whatever you need
return new JsonResponse($test);
}
Обратите внимание, что в моем примере есть несколько проверок и только ?test=a
буду работать. нет test
, ?test=
а также ?test=1
все не будет работать по указанным причинам.
Если кто-нибудь знает, как заставить его работать с param_fetcher_listener: true
Мне любопытно:)
Также ознакомьтесь с документацией ( https://symfony.com/doc/master/bundles/FOSRestBundle/param_fetcher_listener.html) для ознакомления с последствиями использования force