Symfony маршрутизация перестала работать, когда нет в списке требований

Когда я впервые настроил проект (в 3.1.4), я настроил для маршрута по умолчанию список значений по умолчанию для переменной, которая будет отправлена ​​(locationId), и другой маршрут, чтобы поймать все, чего не было в списке, и маршрут это к значению по умолчанию. Это перестало работать, когда я недавно протестировал его снова, поэтому я настроил новый проект Symfony по умолчанию и просто изменил DefaultController на (это в 3.1.5):

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

class DefaultController extends Controller
{
/**
* @Route("/{locationId}", name="homepage", requirements={"locationId": "L|CH|GCB"})
*/
public function indexAction($locationId = "L")
{
echo $locationId;

return new response('<br>blah');
}

/*
* NOTE: This route is just used for any values that are not matched so they go to L
* @Route("/{locationId}")
*/
public function nocampAction($locationId)
{
return $this->indexAction();
}
}

Это ДОЛЖНО означать, что если /path/to/app_dev.php/L вызывается, то он будет отображать L и бла. Если L заменить на CH или GCB, он должен повторить их. Тем не менее, если через это значение отправляется значение, которое не является ни одним из них, оно должно по умолчанию иметь значение L. Но когда я пытаюсь /path/toapp_dev.php/LLL, я получаю сообщение о том, что маршрут не может быть найден!

Есть идеи, почему это происходит? Это никогда не запускает второй маршрут.

ПРИМЕЧАНИЕ: этот тест работает (старый проект, который я вырезал из кода 3.1.4):

<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

class DefaultController extends Controller
{
/**
* @Route("/{varname}", name="homepage", requirements={"varname": "1|2|3"})
*/
public function indexAction($varname = "Cool")
{
echo $varname;
return new Response("<br>default");
}

/**
* NOTE: blah
* @Route("/{varname}")
*/
public function novarAction()
{
return $this->indexAction();
}

/**
* @Route("/test/{varname}")
*/
public function testAction()
{
echo "testAction";
return new Response("OK");
}
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector