Настроить аутентификацию - Войти в Symfony2 Сообщения - PullRequest
19 голосов
/ 09 февраля 2012

Итак, я читаю главу о безопасности книги Symfony2.Я все понимаю, но я бы хотел настроить сообщение об ошибке, если есть ошибка входа в систему.

В каком файле я могу это изменить?

Это шаблон:

{% if error %}
    <div>{{ error.message }}</div>
{% endif %}

<form action="{{ path('login_check') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />

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

{#
    If you want to control the URL the user is redirected to on success (more details below)
    <input type="hidden" name="_target_path" value="/account" />
#}

<input type="submit" name="login" />

Я считаю, что худший способ сделать это будет выглядеть примерно так:

if (error.message=="Bad credentials")
    echo "Los datos son erróneos :)"

if (error.message==The presented password is invalid")
    echo "La combinación username/password no es correcta :)"

Не могли бы выПомогите мне, пожалуйста?


Редактировать: У меня все заработало:

Если кому-то нужно это сделать, обязательно добавьте эту строку в конфиг.yml

#app/config/config.yml
framework:
    translator: { fallback: en }

и поместите в файл messages.whwhatisyourlanguage.yml, в моем случае messages.es.yml, строки, подобные этой:

Текст, который вы хотите перевести:1025 *

#Foo\DummyBundle\Resources\translations\messages.es.yml
The presented password cannot be empty.: El campo contrasena no debe estar vacio
The presented password is invalid.: Los datos suministrados son incorrectos
Bad credentials: Los datos suministrados son incorrectos

Будьте осторожны с текстом, который вы хотите перевести.Если текст имеет точку в конце, вы должны поставить точку.Я этого не делал и не работал.

footranslate. отличается от footranslate

Привет!:)

Ответы [ 2 ]

16 голосов
/ 09 февраля 2012

Вы можете использовать перевод parameters.ini установите языковой стандарт на свой язык и создайте файл сообщения .Тогда в шаблоне веточки используйте:

{% if error %}
    <div class="error">{{ error.message|trans({},'messages') }}</div>
{% endif %}
3 голосов
/ 08 июля 2015

Существует другая возможность, если вы не хотите использовать переводы. Вы можете просто заменить сообщение, например:

{{ error.message | replace({"Bad credentials." : "Invalid username or password."}) }}
...