2015-09-28 2 views
0

Я использую это в моей навигационной панели на моем веб-сайтеSymfony Войти FosUserBundle перенаправлять

{{ render(controller('FOSUserBundle:Security:login')) }} 

И я поставил регистрационную форму в моей навигационной панели, где моя работа Логин, когда я поставил правильные данные в .. моя проблема, когда приходят данные неверны, потому что рендер перенаправляет меня на страницу login.html.twig, чтобы сказать мне сообщение об ошибке. Я думаю, что моя проблема в этой линии

protected function renderLogin(array $data) 
    { 
    return $this->render('FOSUserBundle:Security:login.html.twig', $data); 
} 

Я пытаюсь это изменить, с начальной страницы или каталога навигационной панели, но это не хороший способ ..

Как я могу сделать ??? Я хочу, чтобы сообщение об ошибке в индексе, и я не хочу, чтобы перенаправить на страницу входа ..

+0

Вы пытались переписать маршруты FOSUserBundle? –

+0

Я пробовал, но я думаю, что я сделал что-то не так. Я не знаю, какой путь редактировать –

ответ

1

если вы начинаете с FOSUserBundle вы научитесь импортировать файлы маршрутизации сверток в:

# app/config/routing.yml 
fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

Теперь смотрите here и посмотреть, как вы можете импортировать различные разделы.

Возьмите их на вместо того, вы были первым, чтобы импортировать их все, но пропустить первый (security.xml)

Следующая открытая vendor/friendsofsymfony/user-bundle/Resources/config/routing/security.xml и скопировать его на свой собственный проект. Измените /login путь к вашему собственному пути /.

ИЛИ

Перезапишите Symfony логин маршрут:

# app/config/routing.yml 
fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

fos_user_security_login: 
    path: /
    defaults: { _controller: AppBundle:Default:index } 

добавить опцию login_path: / в security.yml

# app/config/security.yml 
security: 
    firewalls: 
     main: 
      form_login: 
       login_path:/
0

@Frankbeen

Привет я стараюсь с вашим метод, но я получаю это Ошибка Нет маршрута найдено "GET/входа в систему" (от "----")

До этого я поставил в routing.yml этот код:

fos_user_profile: 
resource: "@FOSUserBundle/Resources/config/routing/profile.xml" 
prefix: /profile 

fos_user_register: 
resource: "@FOSUserBundle/Resources/config/routing/registration.xml" 
prefix: /register 

fos_user_resetting: 
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" 
prefix: /resetting 

fos_user_change_password: 
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml" 
prefix: /profile 

fos_user_security_check: 
pattern: /login_check 
defaults: { _controller: FOSUserBundle:Security:check } 

fos_user_security_logout: 
pattern: /logout 
defaults: { _controller: FOSUserBundle:Security:logout } 

И в этом security.xml :

<?xml version="1.0" encoding="UTF-8" ?> 

http://symfony.com/schema/routing/routing-1.0.xsd ">

<route id="fos_user_security_login" pattern="/"> 
    <default key="_controller">FOSUserBundle:Security:login</default> 
</route> 

<route id="fos_user_security_check" pattern="/login_check"> 
    <default key="_controller">FOSUserBundle:Security:check</default> 
    <requirement key="_method">POST</requirement> 
</route> 

<route id="fos_user_security_logout" pattern="/logout"> 
    <default key="_controller">FOSUserBundle:Security:logout</default> 
</route> 

Теперь сообщение об ошибке из имени пользователя/пароля, неправильно приходят в домашнюю страницу, но когда-либо перенаправлять Войти в «URL/app_dev.php/входа в систему» ​​с этой ошибкой Нет маршрута найдено для «GET/входа в систему» ​​(от " URL/app_dev.php/") Я бы перенаправил на главную страницу, где проблемаmmm ??

0

добавить следующие меры безопасности.YML:

//... 
    firewalls: 
     main: 
      // ... 
      form_login: 
       login_path:/
       // ... 
  • я отредактировал мой первый пост.
Смежные вопросы