Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] mostrar error en un formulario

Estas en el tema de mostrar error en un formulario en el foro de Symfony en Foros del Web. Hola, tengo un formulario pero en la funcion de procesarlo a la hora de incertar en la bd tengo un try catch, en el catch ...
  #1 (permalink)  
Antiguo 22/07/2014, 09:12
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 5 meses
Puntos: 0
mostrar error en un formulario

Hola, tengo un formulario pero en la funcion de procesarlo a la hora de incertar en la bd tengo un try catch, en el catch quiero devolver el formulario y un mensaje de error pero no tengo idea como hacerlo de forma optima. Saludos y Gracias
  #2 (permalink)  
Antiguo 22/07/2014, 10:52
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: mostrar error en un formulario

Que tipo de mensaje de error quieres enviar ?? publica el código es difícil suponer lo que quieres realmente
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 22/07/2014, 15:24
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 3 meses
Puntos: 23
Respuesta: mostrar error en un formulario

Tienes dos opciones

1) Puedes o pasarle por parametro un mensaje de error a tu plantilla o vista, por ejemplo en tu controller:

Código PHP:
Ver original
  1. $mensaje = "hola soy un lindo mensaje";
  2.  
  3.         return array(
  4.                 'mensaje' => $mensaje
  5.         );

Y en tu plantilla simplemente lo recuperas como

Código HTML:
Ver original
  1. {{ mensaje|default('') }}

Si tiene caracteres especiales o tildes, deberas agregar RAW

Código HTML:
Ver original
  1. {{ mensaje|raw|default('') }}

La funcion "|default('')" solo indica que si no esta definido, muestre lo que seteamos entre los parentesis

2) Mediante un mensaje temporal, que es la que mas se recomienda, al recargar la pagina este se elimina, en tu controller:

Código PHP:
Ver original
  1. $this->get('session')->getFlashBag()->add(
  2.                                            'notice',
  3.                                            array(
  4.                                                 "type" => "error",
  5.                                                 "mensaje" => "hola soy otro mensaje pero esta vez voy en la sesion"
  6.                                                 )
  7.                                     );

Y en tu vista o plantilla puedes recuperarlo asi


Código HTML:
Ver original
  1. <div class="msgbox {{ flashMessage["type"] }}">
  2.     <ul>
  3.         <li>{{ flashMessage["mensaje"]|raw }}</li>
  4.     </ul>
  5. </div>

Fijate que le estoy pasando un array, donde le indico el "type" esto es para que tome algun estilo de CSS que tengas definido y el mensaje que es el que muestra.

Saludos
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)
  #4 (permalink)  
Antiguo 23/07/2014, 11:42
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: mostrar error en un formulario

Muchismas gracias el primero me funciono bien pero el segundo no, me da un error en la twig que no reconoce la variable flashMessage.
  #5 (permalink)  
Antiguo 23/07/2014, 12:30
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 3 meses
Puntos: 23
Respuesta: mostrar error en un formulario

A perdon, me equivoque en copiar


Código HTML:
Ver original
  1. {% for flashMessage in app.session.flashbag.get('notice') %}
  2.  
  3.             <div class="msgbox {{ flashMessage["type"] }}">
  4.                 <ul>
  5.                     <li>{{ flashMessage["mensaje"]|raw }}</li>
  6.                 </ul>
  7.             </div>
  8.         {% endfor %}

Ahora si ;)

EDITO: Actualizo codigo
__________________
Si encuentras que tu pregunta fue respondida, se agradeceria enormemente que la marcaras como solucionada... si... es el boton verde gigante que esta al final de la pagina :)
  #6 (permalink)  
Antiguo 23/07/2014, 12:32
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: mostrar error en un formulario

Lo correcto es que iteres el flashbag
Código PHP:
Ver original
  1. {% for flashMessage in app.session.flashbag.get('notice') %}
  2.     <div class="msgbox {{ flashMessage["type"] }}">
  3.         <ul>
  4.             <li>{{ flashMessage["mensaje"]|raw }}</li>
  5.         </ul>
  6.     </div>
  7. {% endfor %}
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 24/07/2014, 10:40
Avatar de witchy  
Fecha de Ingreso: junio-2014
Mensajes: 44
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: mostrar error en un formulario

Muchisimas Gracias funciono super bien, thanks

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:43.