Здравствуйте.
Имеется такой маршрут;
/**
* @Route("/search.{_format}/media/{tagName}",
* name="searchMedia",
* requirements= {
* "size":"thumbnail|low_resolution|standard_resolution",
* "tagName":"\w+",
* "count":"\d+",
* "tagId":"\d+",
* "_format":"web|json"
* },
* defaults={
* "count" : "33",
* "tagId" : "0",
* "size":"thumbnail",
* "_format":"web"
* }
* )
*/
Хочу генерировать ссылки содержащие get параметры, но при генерации ссылок в шаблоне twig не проставляются значения описанные в
requirements ,
но без проблем вставляются get параметры
не описанные в
requirements и
{slug} параметры в маршруте.
например из:
{{ path('searchMedia', ({tagName: tag.name,param1:"value1",tagId:"100500"})) }}
получим:
/search.web/media/{tag.name}?param1=value1
В гугле советуют генерировать ссылки в контроллере ,а значит и проверять входные параметры в контроллере.
Я бы хотел оставить все проверки входных параметров в
route anotations
Есть ли способ написать маршрут примерно так:
/**
* @Route("/search.{_format}/media/{tagName}",
* name="searchMedia",
* requirements= {
* " GET(size)":"thumbnail|low_resolution|standard_resolution",
* "tagName":"\w+",
* "GET(count)":"\d+",
* "GET(tagId)":"\d+",
* "_format":"web|json"
* },
* defaults={
* "GET(count)" : "33",
* "GET(tagId)" : "0",
* "GET(size)":"thumbnail",
* "_format":"web"
* }
* )
*/
и чтоб ссылка в twig генерировалась на основе этого маршрута?
************************************************************************************
Решил сделать все традиционно используя sf fom validate
route сокращу до
/**
* @Route("/search.{_format}/media/{tagName}",
* name="searchMedia",
* requirements= {
* "_format":"web|json"
* },
* defaults={
* "_format":"web"
* }
* )