Symfony 2.0 - Как создать маршрут с параметрами массива? - PullRequest
3 голосов
/ 02 декабря 2011

Я хочу создать маршрут, соответствующий массиву.

пример:

    Name_show:
        pattern:  /Name/{names}
        defaults: { _controller: testBundle:Name:showNames }

, где {names} содержит массив имен, например:

array([1] => 'Thomas', [2] => 'Anton', [3] => 'Berta');

Как с этим справиться?Ответы Symfony 2.0 с

Warning: preg_match() expects parameter 2 to be string, array given

не могут найти решение в Symfony doc.

Ответы [ 3 ]

3 голосов
/ 02 декабря 2011

Вы можете использовать его как строку и просто serialize() содержимое до и после.

Насколько я знаю, symfony2 не разрешает массивы в маршрутизации, как URL будет выглядеть с массивом? URL должен быть строкой, поэтому сериализация массива и передача его в виде строки, вероятно, является лучшим вариантом.

1 голос
/ 09 сентября 2015

Я согласен с @JamesHalsall по поводу сериализации. Я также добавил бы, что сериализованная строка должна быть закодирована до использования в качестве параметра GET.

0 голосов
/ 02 декабря 2011

Необходимо проверить маршрут, поэтому либо используйте некоторую надуманную обработку события (см. событие kernel.controller ), либо используйте контроллер, который просто перенаправляет на новый URL-адрес, если имя находится в массиве илиотображает страницу с ошибкой.

Также вы можете поэкспериментировать с ChainRouter , который является заменой стандартного маршрутизатора Symfony2 (поддерживает маршрутизацию на основе Doctrine и т. д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...