login - example - Personalizar autenticación-Iniciar sesión en mensajes Symfony2
symfony error login (2)
Así que estoy leyendo el capítulo de seguridad de Symfony2 Book. Entiendo todo, pero me gustaría personalizar el mensaje de error si hay un error de inicio de sesión.
¿En qué archivo puedo cambiar esto?
Esta es la plantilla:
{% 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" />
Creo que la peor manera de hacer esto sería algo como:
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 :)"
Podrias ayudarme por favor?
Edit: Lo tengo funcionando:
En caso de que alguien tenga que hacer esto, asegúrese de agregar esta línea al config.yml
#app/config/config.yml
framework:
translator: { fallback: en }
y coloque en el archivo messages.whateverisyourlanguage.yml, en mi caso messages.es.yml, líneas como esta:
Texto que quieres traducir: texto traducido.
#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
Ten cuidado con el texto que quieres traducir. Si el texto tiene un punto al final, tienes que poner el punto. No estaba haciendo eso y no estaba funcionando.
footranslate.
es diferente a footranslate
¡Saludos! :)
Hay otra posibilidad si no quieres usar traducciones. Puede simplemente reemplazar el mensaje, por ejemplo:
{{ error.message | replace({"Bad credentials." : "Invalid username or password."}) }}
Puedes usar la translation . En parameters.ini
establezca la configuración regional a su idioma y cree un archivo de mensaje . Luego, en el uso de la plantilla de ramita:
{% if error %}
<div class="error">{{ error.message|trans({},''messages'') }}</div>
{% endif %}