Symfony2 Невозможно создать URL, хотя путь существует

0

Контроллер:

namespace Main\UserBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;

class LoginController extends Controller
{
    /**
    * @Route("login")
    */
    public function indexAction(Request $request){
        return $this->render('UserBundle:Login:login.html.twig');
    }

    /**
     * @Route("login_check")
     */
    public function loginCheckAction(){
        return true;
    }

    /**
     * @Route("logout")
     */
    public function logoutAction(){

    }
}

Вид:

{% extends '::base.html.twig' %}
{% block body %}
<form action="{{ path('/login_check') }}" method="post">
    <label for="username">Email:</label>
    <input type="text" id="email" name="email" value="{{ last_username }}" />

    <label for="password">Password:</label>
    <input type="password" id="password" name="_password" />

    <button type="submit">login</button>
</form>
{% endblock body %}

Ошибка: во время рендеринга шаблона было выбрано исключение ("Не удалось создать URL-адрес для указанного маршрута"/login_check ", поскольку такой маршрут не существует.") В UserBundle: Login: login.html.twig в строке 3.

Я пробовал вызывать сам путь login_check, и он работает, я также заменил путь для формы на "login", он также не работает.

Я также попытался очистить кеш и все, кроме того, что он не работает.

У кого-нибудь есть решение для этого?

Маршрут от терминала:

 main_user_login_index       ANY    ANY    ANY  /login                            
 main_user_login_logincheck  ANY    ANY    ANY  /login_check                      
 main_user_login_logout      ANY    ANY    ANY  /logout                           
 main_user_register_index    ANY    ANY    ANY  /register                         
 main_admin_login_index      ANY    ANY    ANY  /admin/login/{name}               
 main_admin_login_logincheck ANY    ANY    ANY  /admin/login_check                
 main_admin_login_logout     ANY    ANY    ANY  /admin/logout  
  • 0
    имена действий в контроллере соответствуют правилам относительно имен в вашей таблице маршрутов?
Теги:

1 ответ

1

Чтобы использовать <form action="{{ path('/login_check') }}" method="post">

Ваш маршрут должен быть:

/**
 * @Route("/login_check", name="/login_check")
 */
  • 0
    Привет, результат тот же, Невозможно сгенерировать URL.
  • 1
    Привет @KarlWong, вы использовали cmd "php app / console route: debug" для проверки доступных маршрутов? Пожалуйста, используйте этот cmd, чтобы показать ваши доступные маршруты и их названия.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню