Невозможно перенаправить на маршрут, несмотря на то, что в моем контроллере определены маршруты [Symfony] - PullRequest
0 голосов
/ 26 июня 2018

Моя проблема в том, что всякий раз, когда я пытаюсь использовать метод "redirectToRoute" внутри моего контроллера, он никогда не находит маршрут "/ group-b", несмотря на то, что оба маршрута определены внутри контроллера. Это ошибка, которую я получаю:

Невозможно сгенерировать URL для названного маршрута "/ group-b", так как такой маршрут не существует.

Проверив отладочный маршрутизатор, я обнаружил, что маршрут существует, и я все еще могу вручную найти маршрут, когда я изменяю маршрут через панель URL на group-b (http://localhost:8000/group-b).

Вот мой контроллер:

use App\Entity\GroupATask;
use App\Form\GroupAType;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class GroupStageController extends AbstractController
{
    /**
     * @Route("/group-a", name="groupA")
     */
    public function GroupA(Request $request, EntityManagerInterface $entityManager)
    {
        $groupATask = new GroupATask();
        $groupAForm = $this->createForm(GroupAType::class, $groupATask);

        $groupAForm->handleRequest($request);

        if($groupAForm->isSubmitted() && $groupAForm->isValid()){

        $entityManager->persist($groupATask);

        $entityManager->flush();

        $this->redirectToRoute("/group-b");
    }

        return $this->render('group_stage/groupA.html.twig', [
            "group_a_form" => $groupAForm->createView()
        ]);
}

    /**
     * @Route("/group-b", name="groupB")
     */
    public function GroupB()
    {
        return $this->render('group_stage/groupB.html.twig');
    }

}

Вот мой маршрутизатор отладки (показаны оба маршрута для группы a + group-b

-------------------------- -------- -------- ------ ----------------------------------
  Name                       Method   Scheme   Host   Path
 -------------------------- -------- -------- ------ -----------------------------------
  groupA                     ANY      ANY      ANY    /group-a
  _twig_error_test           ANY      ANY      ANY    /_error/{code}.{_format}
  _wdt                       ANY      ANY      ANY    /_wdt/{token}
  _profiler_home             ANY      ANY      ANY    /_profiler/
  _profiler_search           ANY      ANY      ANY    /_profiler/search
  _profiler_search_bar       ANY      ANY      ANY    /_profiler/search_bar
  _profiler_phpinfo          ANY      ANY      ANY    /_profiler/phpinfo
  _profiler_search_results   ANY      ANY      ANY    /_profiler/{token}/search/results
  _profiler_open_file        ANY      ANY      ANY    /_profiler/open
  _profiler                  ANY      ANY      ANY    /_profiler/{token}
  _profiler_router           ANY      ANY      ANY    /_profiler/{token}/router
  _profiler_exception        ANY      ANY      ANY    /_profiler/{token}/exception
  _profiler_exception_css    ANY      ANY      ANY    /_profiler/{token}/exception.css
  groupB                     ANY      ANY      ANY    /group-b
 -------------------------- -------- -------- ------ -----------------------------------

Я не могу понять, почему он не будет перенаправлять на маршрут "/ group-b", когда он определен и существует. Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Как уже упоминал Вадим, измените код на:

return $this->redirectToRoute("groupB");
0 голосов
/ 26 июня 2018

Метод redirectToRoute принимает имя маршрута, а не URI.

...