Как маршрут в Symfony по первым двум сегментам связывается с любыми сегментами - PullRequest
0 голосов
/ 07 мая 2018

Привет, я пытаюсь найти решение для маршрутизации аннотаций в Symfony 3. Это для ссылок на изображения, которые находятся на другом сервере (временное решение).

ссылки могут быть:

/ изображения / фотографии / 1 / 1.jpg

или

/ изображений / фото / 5/7/98/52 / 45.jpg

так что любые сегменты.

поэтому все ссылки начинаются с / images / photos /, но после этого они могут иметь любые другие сегменты в качестве пути к файлу.

Я пытался:

 /**
 * @Route("/images/photos/{requestAddress}", name="front.imageredirect.action")
 */

Но безуспешно. Есть подсказки?

1 Ответ

0 голосов
/ 07 мая 2018

Я не знаю, возможно ли это сделать с маршрутизацией аннотаций

Но это возможно с конфигурацией yaml

catch_them_all_route:
    path: '/images/photos/{catchall}'
    defaults:
        _controller: 'AppBundle:YourController:catch'
    requirements:
        catchall: ".+"

catchAction будет перехватывать все вызовы URL, начиная с /images/photos/

public function catchAction(Request $request) { 
    $segments = [];
    if($subPath = $request->attributes->get('catchall')) {
        $segments = explode('/', $subPath);
    }
    return $this->json($segments);
}

Отсюда сегменты будут содержать все части после /images/photos

Пример с вызовом /images/photos/5/7/98/52/45.jpg

$segments будет

  • 5
  • 7
  • 52
  • 45.jpg

Я не проверял, дайте мне знать, если что-то не так:)

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