Нет такой вещи, как «базовый маршрут». Определения имен на этих маршрутах не будут иметь никакого эффекта.
/**
* @Route("/buy-stuff", name="buy-stuff")
* @Route("/sell-stuff" , name="for-sale")
*/
Class XY
{
// ...
}
У вас есть Route Prefix настроенный в контроллере, который не имеет названия.
Получить текущее название маршрута в контейнерной курсе службы/контроллер:
$route = $this->container->get('request')->get('_route');
Второй вариант является магия insertation в $ _route в контроллере.
class MyController extends Controller
{
public function myAction($_route)
{
// ...
В Twig получить маршрут вроде следующего (работает только для мастер-запросов, не пересылаемых из них - использование carefulyl с ESI)
{{ app.request.attributes.get('_route') }}
То, что вы пытаетесь сделать, может быть достигнуто путем включения в именах маршрутов и имеют две конфигурации маршрутизации, каждая из которых имеет отдельный префикс из отдельного параметра контейнера.
# app/config/config.yml
parameters:
acme.routep_refix.buy_stuff: /buy-stuff
acme.route_prefix.for_sale: /for-sale
Теперь создать две маршрутизации конфигурации:
acme.buy_stuff:
prefix: %acme.route_prefix.buy_stuff%
resource: "@AcmeHelloBundle/Resources/config/routing_buy_stuff.yml"
acme.buy_stuff:
prefix: %acme.route_prefix.for_salef%
resource: "@AcmeHelloBundle/Resources/config/routing_for_sale.yml"
пожалуйста, просмотрите мой ответ и спросить, если что-то неясно, так что я могу обновить его. в противном случае ответьте пожалуйста :) – nifr
Я решил: из документов я нашел его: $ this-> container-> get ('request') -> getPathInfo(); дает мне «купить-материал» или «распродажу вещей» в зависимости от моей точки входа http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/Request.html – Kikimac
Это только половина история ... Если вы измените один из своих префиксов на/foo, getPathInfo() вернет foo, а не имя (т. е. бай-ины), которое вы связали с ним, и это был ваш исходный вопрос :) – nifr