Я искал часы, и я не нашел действительно, как мы можем переопределить шаблон входа для пользователя и администратора.FosUserBundle Различные страницы входа
I'v создал брандмауэр администратора в security.yml
firewalls:
admin:
pattern: /admin(.*)
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: /admin/login
check_path: /admin/login_check
default_target_path: /admin
logout:
path: /admin/logout
target:/
anonymous: true
access_control:
- { path: ^/admin/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/logout$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/login_check$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
- { path: ^/.*, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Теперь я хочу, чтобы создать форму для входа.
Как я понимаю, мы должны создать действие для входа (потому что, если мы не symfony2 не выбрасываем исключение маршрута).
Routing для администратора логин:
admin_login:
pattern: /admin/login
defaults: { _controller: CSCommonBundle:Admin/Default:login }
контроллер для отображения страницы входа:
public function loginAction()
{
return $this->render('CSCommonBundle:Admin/Login:login.html.twig');
}
И форма Логин:
<form class="form-signin" action="/admin/login_check" method="post">
<h2 class="form-signin-heading">Giriş Yapın</h2>
<div class="login-wrap">
<input type="text" name="_username" id="username" class="form-control" placeholder="{% trans %}Kullanıcı Adı{% endtrans %}/{% trans %}E-Posta{% endtrans %}" autofocus>
<input type="password" name="_password" id="password" class="form-control" placeholder="{% trans %}Şifre{% endtrans %}">
<label class="checkbox">
<input type="checkbox" id="remember_me" name="_remembe_me" value="on"> Beni Hatırla
</label>
<button class="btn btn-lg btn-login btn-block" type="submit">{% trans %}Giriş Yap{% endtrans %}</button>
</div>
</form>
Теперь у меня есть несколько вопросов о том,
- Как мы можем получить ошибки входа?
- Создает формы входа в систему, как это, работает с fosuserbundle?
- Можем ли мы создать другие страницы входа для других типов пользователей?
- Давая форму/admin/login_check (то же самое, что и в security.yml) - это исцеление?
Пожалуйста, объясните это мне. Я потерялся и застрял в этом.
Благодарим вас за разъяснение. Но документация Fos о переопределении шаблонов неэффективна. Можете ли вы показать мне пример? –
Конечно, для переопределения шаблонов вам необходимо создать новый файл в приложении/Ресурсах, для входа в систему это будет приложение/Ресурсы/FOSUserBundle/views/Security/login.html.twig. Если вы собираетесь использовать несколько шаблонов, но один для администратора и один для конечных пользователей, вам не нужно будет переопределять шаблон defaut, вместо этого переопределите сам контроллер безопасности и просто отрисуйте собственный шаблон, где бы вы его ни разместили. Просто имейте в виду сохранить ту же самую разметку, которую они используют, поскольку login_check использует эти входные имена. – joe42
Каковы имена элементов формы? Я действительно смущен. На самом деле нет настоящего примера. –