Hola a todos,
Soy nuevo en Symfony y ps tengo una curiosidad. El UniqueEntity
por defecto me devuelve un mensaje que es "este email esta en uso". Bueno lo que yo quisiera saver es si esto se puede editar en la manera que muestre "este {el_email_del_text} esta en uso".
Probé con con el Mesage="este correo {value} esta en uso"
pensando que era igual que usando el mensaje del @Assert\Notblank
donde si captura el valor de ese texto al darle al Submit
y lo muestra "Este correo "ejemplo@dsa" no es valido". Pues quisiera algo así pero con el UniqueEntity
:S
Respuestas
Creo que en vez de {value}
tienes que utilizar {{ value }}
(debes escribir esta cadena exactamente así: respetando los espacios en blanco y añadiendo dos {{
).
@javiereguiluz
Ya intenté de esas maneras pero me vota error. ¿habrá alguna manera de cambiarlo desde la plantilla en el form_error{{form.email}}
y que capture el valor del text? u.u al mostrar el mensaje de error.
¿Será porque el UniqueEntity
se escribe arriba de la clase, a diferencia del @Assert\Email()
que se escribe arriba del objeto email?
Esto si muestra el valor: @Assert\Email(message="Este Correo '{{ value }}' no es valido")
pero esto muestra tal y como esta el mensaje @UniqueEntity("email",message="Este correo'{{ value }}' esta en uso pruebe otro")
.
@MceProjects
Amigo me uno a tu duda.
@jdvellon
He preguntado en el repositorio oficial de Symfony y me han confirmado que esta opción funciona desde Symfony 2.8 (ver respuestas). ¿Quizás estáis utilizando una versión anterior del framework?
@javiereguiluz
Después de más comentarios, este es el comportamiento del mensaje personalizado en UniqueEntity
:
- Puedes usar
{{ value }}
desde Symfony 2.8 - El valor de
{{ value }}
NO es el campo erróneo (ej. el email del usuario) sino la representación de la entidad en forma de texto. - Si la entidad define el método
__toString()
, se utiliza su valor para{{ value }}
. Si no, se muestra un mensaje genérico:Object of class __CLASS__ identified by <comma separated IDs>
- El mensaje de error siempre se muestra asociado al primer campo que produce el error. Si usas varias propiedades en la opción
fields
, el error solo se muestra en la primera.
Así que respondiendo a tu pregunta original, el mensaje de error no puede incluir el valor del email introducido. No obstante, el error se muestra justo al lado del campo de formulario del email, por lo que el mensaje puede decir ago así como : "Este email ya está en uso" y el usuario lo entenderá perfectamente.
@javiereguiluz