Commit fafe44971c8adf7f932bbe4fe068c14c1fcdc9d3

Authored by Edgar Gonzalez
1 parent 3213d75b2f
Exists in feature/pruebas

edicion de crud falta show +bug en edit

.gitignore
... ... @@ -10,3 +10,5 @@
10 10 /vendor/
11 11 /bin/
12 12 /composer.phar
  13 +/nbproject/private/
  14 +/nbproject/
13 15 \ No newline at end of file
... ...
app/Resources/views/persona/edit.html.twig
1 1 {% extends 'base.html.twig' %}
2 2  
3 3 {% block body %}
4   - <h1>Persona edit</h1>
5 4  
6   - {{ form_start(edit_form) }}
7   - {{ form_widget(edit_form) }}
8   - <input type="submit" value="Edit" />
9   - {{ form_end(edit_form) }}
10   -
11   - <ul>
12   - <li>
13   - <a href="{{ path('persona_index') }}">Back to the list</a>
14   - </li>
15   - <li>
16   - {{ form_start(delete_form) }}
17   - <input type="submit" value="Delete">
18   - {{ form_end(delete_form) }}
19   - </li>
20   - </ul>
21   -{% endblock %}
  5 + <div class="row">
  6 + <div class="col-lg-12">
  7 + <div class="panel panel-default">
  8 + <div class="portlet">
  9 + <div class="portlet-header">
  10 + <div class="caption">Formulario De Edición</div>
  11 + </div>
  12 + <h3 class="block-heading">Datos Personales</h3>
  13 + <div class="form-body pal">
  14 + <div class="row">
  15 + <div class="col-lg-12">
  16 + <form action="{{ path('persona_edit', { 'id': persona.id }) }}" id="form_persona" novalidate method="POST" {{ form_enctype(edit_form)}}>
  17 + <div id="informacionPersonal" class="tab-pane fade in active">
  18 + <div class="col-md-12">
  19 + <div class="row">
  20 + <div class="col-md-4">
  21 + <div class="form-group{% if edit_form.cedula.vars.errors[0].message is defined %} has-error{% endif %}">
  22 + {{ form_label(edit_form.cedula) }}
  23 + {{ form_widget(edit_form.cedula) }}
  24 + </div>
  25 + </div>
  26 + {% if edit_form.cedula.vars.errors[0].message is defined %}
  27 + <span class="help-block">
  28 + {{ edit_form.cedula.vars.errors[0].message }}
  29 + </span>
  30 + </div>
  31 + {% endif %}
  32 + </div>
  33 + </div>
  34 + <div class="col-md-3">
  35 + <div class="form-group{% if edit_form.nombre.vars.errors[0].message is defined %} has-error{% endif %}">
  36 + {{ form_label(edit_form.nombre) }}
  37 + {{ form_widget(edit_form.nombre) }}
  38 + {% if edit_form.nombre.errors[0].message is defined %}
  39 + <span class="help-block">
  40 + {{ edit_form.nombre.vars.errors[0].message }}
  41 + </span>
  42 + {% endif %}
  43 + </div>
  44 + </div>
  45 + <div class="col-md-3">
  46 + <div class="form-group{% if edit_form.apellido.vars.errors[0].message is defined %} has-error{% endif %}">
  47 + {{ form_label(edit_form.apellido) }}
  48 + {{ form_widget(edit_form.apellido) }}
  49 + {% if edit_form.apellido.vars.errors[0].message is defined %}
  50 + <span class="help-block">
  51 + {{ edit_form.apellido.vars.errors[0].message }}
  52 + </span>
  53 + {% endif %}
  54 + </div>
  55 + </div>
  56 + <div class="row">
  57 + <div class="col-lg-12">
  58 + <div class="col-md-3">
  59 + <div class="form-group{% if edit_form.genero.vars.errors[0].message is defined %} has-error{% endif %}">
  60 + {{ form_label(edit_form.genero) }}
  61 + <div>
  62 + </div>
  63 + {{ form_widget(edit_form.genero) }}
  64 + {% if edit_form.genero.vars.errors[0].message is defined %}
  65 + <span class="help-block">
  66 + {{ edit_form.genero.vars.errors[0].message }}
  67 + </span>
  68 + {% endif %}
  69 + </div>
  70 + </div>
  71 + <div class="col-md-6">
  72 + <div class="form-group{% if edit_form.direccion.vars.errors[0].message is defined %} has-error{% endif %}">
  73 + {{ form_label(edit_form.direccion) }}
  74 + {{ form_widget(edit_form.direccion) }}
  75 + {% if edit_form.direccion.vars.errors[0].message is defined %}
  76 + <span class="help-block">
  77 + {{ edit_form.direccion.vars.errors[0].message }}
  78 + </span>
  79 + {% endif %}
  80 + </div>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + <div class="row">
  85 + <div class="col-md-12">
  86 + <div class="form-actions text-right pal">
  87 + {{form_widget(edit_form._token)}}
  88 + <a href="{{ path('persona_index') }}">
  89 + <button type="button" class="btn btn-danger">
  90 + Cancelar
  91 + </button>
  92 + </a>
  93 + <button type="submit" class="btn btn-primary">
  94 + Editar
  95 + </button>
  96 + &nbsp;
  97 + </div>
  98 + </div>
  99 + </div>
  100 + </div>
  101 + </div>
  102 + </div>
  103 + </form>
  104 + </div>
  105 + </div>
  106 +{% endblock %}
22 107 \ No newline at end of file
... ...
app/Resources/views/persona/index.html.twig
1 1 {% extends 'base.html.twig' %}
2 2  
3 3 {% block body %}
4   - <h1>Personas list</h1>
5   -
6   - <table>
7   - <thead>
8   - <tr>
9   - <th>Id</th>
10   - <th>Nombre</th>
11   - <th>Apellido</th>
12   - <th>Cedula</th>
13   - <th>Genero</th>
14   - <th>Direccion</th>
15   - <th>Actions</th>
16   - </tr>
17   - </thead>
  4 +{% for type, flashMessage in app.session.flashbag.all() %}
  5 + <div class="alert alert-{{ type }} fade in">
  6 + <button class="close" data-dismiss="alert" type="button">×</button>
  7 + {% if flashMessage.title is defined %}
  8 + <strong>{{ flashMessage.title }}</strong>
  9 + {{ flashMessage.message }}
  10 + {% else %}
  11 + {{ type }}
  12 + {% endif %}
  13 + </div>
  14 + {% endfor %}
  15 + <div class="row">
  16 + <div class="col-lg-12">
  17 + <div class="portlet-body">
  18 + <div class="table-tools">
  19 + <a href="{{ path('persona_new') }}">
  20 + <button type="button" class="btn btn-red mrs"><i class="fa fa-plus"></i>&nbsp;
  21 + Agregar
  22 + </button>
  23 + </a>
  24 + </div>
  25 + <div class="table-responsive mtl">
  26 + <table class="table table-striped table-bordered table-hover">
  27 + <thead>
  28 + <tr>
  29 + <th class="text-center">ID</th>
  30 + <th class="text-center">Nombre</th>
  31 + <th class="text-center">Apellido</th>
  32 + <th class="text-center">Cedula</th>
  33 + <th class="text-center">Genero</th>
  34 + <th class="text-center">Direccion</th>
  35 + <th class="text-center">Acciones</th>
  36 + </tr>
  37 + </thead>
18 38 <tbody>
19 39 {% for persona in personas %}
20 40 <tr>
21   - <td><a href="{{ path('persona_show', { 'id': persona.id }) }}">{{ persona.id }}</a></td>
22   - <td>{{ persona.nombre }}</td>
23   - <td>{{ persona.apellido }}</td>
24   - <td>{{ persona.cedula }}</td>
25   - <td>{{ persona.genero }}</td>
26   - <td>{{ persona.direccion }}</td>
  41 + <td class="text-center"><a href="{{ path('persona_show', { 'id': persona.id }) }}">{{ loop.index }}</a></td>
  42 + <td class="text-center">{{ persona.nombre | capitalize}}</td>
  43 + <td class="text-center">{{ persona.apellido | capitalize}}</td>
  44 + <td class="text-center">{{ persona.cedula }}</td>
  45 + <td class="text-center">{{ persona.genero | capitalize}}</td>
  46 + <td class="text-center">{{ persona.direccion }}</td>
27 47 <td>
28   - <ul>
29   - <li>
30   - <a href="{{ path('persona_show', { 'id': persona.id }) }}">show</a>
31   - </li>
32   - <li>
33   - <a href="{{ path('persona_edit', { 'id': persona.id }) }}">edit</a>
34   - </li>
35   - </ul>
36   - </td>
37   - </tr>
38   - {% endfor %}
  48 + <ul>
  49 + <a href="{{ path('persona_show', { 'id': persona.id }) }}"><span title="Mostrar" class="glyphicon text-info glyphicon-eye-open"></span></a>&nbsp;&nbsp;
  50 + <a href="{{ path('persona_edit', { 'id': persona.id }) }}"><span title="Editar" class="glyphicon text-warning glyphicon-edit"></span></a>&nbsp;&nbsp;
  51 + <a data-whatever="{{persona.id}}" data-toggle="modal" data-target="#myModal" href="#"><span title="Eliminar" class="glyphicon text-orange glyphicon-trash"></span></a>&nbsp;&nbsp;
  52 + </ul>
  53 + </td>
  54 + </tr>
  55 + {% endfor %}
39 56 </tbody>
40   - </table>
41   -
42   - <ul>
43   - <li>
44   - <a href="{{ path('persona_new') }}">Create a new persona</a>
45   - </li>
46   - </ul>
  57 + </table>
  58 + </div>
  59 + </div>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </div>
  64 + </div>
  65 + </div>
  66 + <!--modal para eliminar -->
  67 + <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  68 + <div class="modal-dialog">
  69 + <div class="modal-content">
  70 + <div class="modal-header">
  71 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  72 + <h4 class="modal-title" id="myModalLabel">Eliminar!!!</h4>
  73 + </div>
  74 + <div class="modal-body">
  75 + <h4>¿ Est&aacute seguro de querer eliminar este registro?</h4>
  76 + </div>
  77 + <div class="modal-footer">
  78 + <a class="btn btn-default" type="button" class="close" data-dismiss="modal" aria-label="Close" >Cancelar</a>
  79 + <a class="btn btn-danger" id="borrar" href="#" >Eliminar</a>
  80 + </div>
  81 + </div>
  82 + </div>
  83 + </div>
  84 + <!--fin del modal-->
47 85 {% endblock %}
  86 +{% block javascripts %}
  87 + {{ parent() }}
  88 + <script>
  89 + $('#myModal').on('show.bs.modal', function (event) {
  90 + var button = $(event.relatedTarget) // Button that triggered the modal
  91 + var recipient = button.data('whatever') // Extract info from data-* attributes
  92 +
  93 + // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
  94 + // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
  95 + var modal = $(this)
  96 + var ruta = "{{path('persona_delete', { 'id': "borrar_id" })}}";
  97 +
  98 + var borrar = ruta.replace("borrar_id", recipient);
  99 + modal.find('#borrar').attr("href", borrar);
  100 +
  101 +
  102 + });
  103 + </script>
  104 +{% endblock javascripts %}
48 105 \ No newline at end of file
... ...
app/Resources/views/persona/new.html.twig
1 1 {% extends 'base.html.twig' %}
2 2  
3 3 {% block body %}
4   - <h1>Persona creation</h1>
5   -
6   - {{ form_start(form) }}
7   - {{ form_widget(form) }}
8   - <input type="submit" value="Create" />
9   - {{ form_end(form) }}
10   -
11   - <ul>
12   - <li>
13   - <a href="{{ path('persona_index') }}">Back to the list</a>
14   - </li>
15   - </ul>
16   -{% endblock %}
  4 + <div class "row">
  5 + <div class="panel panel-default">
  6 + <div class="portlet">
  7 + <div class="portlet-header">
  8 + </div>
  9 + <div class="form-body pal">
  10 + <div class="row">
  11 + <div class="col-lg-12">
  12 + <h3 class="block-heading">Formulario De Registro de Persona</h3>
  13 + <div></div>
  14 + {{ form_start(form, {'attr': {'novalidate': 'novalidate'}, 'action': path('persona_new')}) }}
  15 + <div id="myTabContent2" class="tab-content">
  16 + <div id="informacionPersonal" class="tab-pane fade in active">
  17 + <div class="col-md-3">
  18 + <div class="form-group{% if form.cedula.vars.errors[0].message is defined %} has-error{% endif %}">
  19 + {{ form_label(form.cedula) }}
  20 + {{ form_widget(form.cedula) }}
  21 + </div>
  22 + </div>
  23 + {% if form.cedula.vars.errors[0].message is defined %}
  24 + <span class="help-block">
  25 + {{ form.cedula.vars.errors[0].message }}
  26 + </span>
  27 + </div>
  28 + {% endif %}
  29 + </div>
  30 + </div>
  31 + <div class="col-md-3">
  32 + <div class="form-group{% if form.nombre.vars.errors[0].message is defined %} has-error{% endif %}">
  33 + {{ form_label(form.nombre) }}
  34 + {{ form_widget(form.nombre) }}
  35 + {% if form.nombre.errors[0].message is defined %}
  36 + <span class="help-block">
  37 + {{ form.nombre.vars.errors[0].message }}
  38 + </span>
  39 + {% endif %}
  40 + </div>
  41 + </div>
  42 + <div class="col-md-3">
  43 + <div class="form-group{% if form.apellido.vars.errors[0].message is defined %} has-error{% endif %}">
  44 + {{ form_label(form.apellido) }}
  45 + {{ form_widget(form.apellido) }}
  46 + {% if form.apellido.vars.errors[0].message is defined %}
  47 + <span class="help-block">
  48 + {{ form.apellido.vars.errors[0].message }}
  49 + </span>
  50 + {% endif %}
  51 + </div>
  52 + </div>
  53 + <div class="row">
  54 + <div class="col-lg-12">
  55 + <div class="col-md-3">
  56 + <div class="form-group{% if form.genero.vars.errors[0].message is defined %} has-error{% endif %}">
  57 + {{ form_label(form.genero) }}
  58 + <div>
  59 + </div>
  60 + {{ form_widget(form.genero) }}
  61 + {% if form.genero.vars.errors[0].message is defined %}
  62 + <span class="help-block">
  63 + {{ form.genero.vars.errors[0].message }}
  64 + </span>
  65 + {% endif %}
  66 + </div>
  67 + </div>
  68 + <div class="col-md-6">
  69 + <div class="form-group{% if form.direccion.vars.errors[0].message is defined %} has-error{% endif %}">
  70 + {{ form_label(form.direccion) }}
  71 + {{ form_widget(form.direccion) }}
  72 + {% if form.direccion.vars.errors[0].message is defined %}
  73 + <span class="help-block">
  74 + {{ form.direccion.vars.errors[0].message }}
  75 + </span>
  76 + {% endif %}
  77 + </div>
  78 + </div>
  79 + </div>
  80 + </div>
  81 +
  82 + </div>
  83 + <div class="row">
  84 + <div class="col-md-12">
  85 + <div class="form-actions text-right pal">
  86 + <a href="{{ path('persona_index') }}">
  87 + <button type="button" class="btn btn-danger">
  88 + Cancelar
  89 + </button>
  90 + </a>
  91 + <button type="submit" class="btn btn-primary">
  92 + Guardar
  93 + {{ form_end(form)}}
  94 + </button>
  95 + &nbsp;
  96 + </div>
  97 + </div>
  98 + </div>
  99 + </div>
  100 + </div>
  101 + </div>
  102 + </div>
  103 + </div>
  104 + </div>
  105 + </div>
  106 + </div>
  107 + </div>
  108 +{% endblock %}
17 109 \ No newline at end of file
... ...
app/Resources/views/persona/show.html.twig
... ... @@ -39,10 +39,6 @@
39 39 <li>
40 40 <a href="{{ path('persona_edit', { 'id': persona.id }) }}">Edit</a>
41 41 </li>
42   - <li>
43   - {{ form_start(delete_form) }}
44   - <input type="submit" value="Delete">
45   - {{ form_end(delete_form) }}
46   - </li>
  42 +
47 43 </ul>
48 44 {% endblock %}
... ...
src/UBV/PracticaBundle/Controller/personaController.php
... ... @@ -47,8 +47,14 @@ class personaController extends Controller
47 47 $em = $this->getDoctrine()->getManager();
48 48 $em->persist($persona);
49 49 $em->flush();
50   -
51   - return $this->redirectToRoute('persona_show', array('id' => $persona->getId()));
  50 + $this->get('session')->getFlashBag()->set(
  51 + 'success', array(
  52 + 'title' => 'Guardado!',
  53 + 'message' => 'Persona Guardado satisfactoriamente.'
  54 + )
  55 + );
  56 +
  57 + return $this->redirectToRoute('persona_index', array('id' => $persona->getId()));
52 58 }
53 59  
54 60 return $this->render('persona/new.html.twig', array(
... ... @@ -65,11 +71,11 @@ class personaController extends Controller
65 71 */
66 72 public function showAction(persona $persona)
67 73 {
68   - $deleteForm = $this->createDeleteForm($persona);
  74 +
69 75  
70 76 return $this->render('persona/show.html.twig', array(
71 77 'persona' => $persona,
72   - 'delete_form' => $deleteForm->createView(),
  78 +
73 79 ));
74 80 }
75 81  
... ... @@ -81,56 +87,64 @@ class personaController extends Controller
81 87 */
82 88 public function editAction(Request $request, persona $persona)
83 89 {
84   - $deleteForm = $this->createDeleteForm($persona);
  90 +
85 91 $editForm = $this->createForm('UBV\PracticaBundle\Form\personaType', $persona);
86 92 $editForm->handleRequest($request);
87 93  
88 94 if ($editForm->isSubmitted() && $editForm->isValid()) {
89 95 $this->getDoctrine()->getManager()->flush();
90 96  
91   - return $this->redirectToRoute('persona_edit', array('id' => $persona->getId()));
  97 + $this->get('session')->getFlashBag()->set(
  98 + 'success', array(
  99 + 'title' => 'Editado!',
  100 + 'message' => 'Persona Editado satisfactoriamente.'
  101 + )
  102 + );
  103 +
  104 + return $this->redirectToRoute('persona_index', array('id' => $persona->getId()));
92 105 }
93 106  
94 107 return $this->render('persona/edit.html.twig', array(
95 108 'persona' => $persona,
96 109 'edit_form' => $editForm->createView(),
97   - 'delete_form' => $deleteForm->createView(),
  110 +
98 111 ));
99 112 }
100 113  
101   - /**
  114 + /**
102 115 * Deletes a persona entity.
103   - *
104   - * @Route("/{id}", name="persona_delete")
105   - * @Method("DELETE")
106   - */
107   - public function deleteAction(Request $request, persona $persona)
108   - {
109   - $form = $this->createDeleteForm($persona);
110   - $form->handleRequest($request);
111   -
112   - if ($form->isSubmitted() && $form->isValid()) {
113   - $em = $this->getDoctrine()->getManager();
114   - $em->remove($persona);
115   - $em->flush();
116   - }
117   -
118   - return $this->redirectToRoute('persona_index');
119   - }
120   -
121   - /**
122   - * Creates a form to delete a persona entity.
123   - *
124   - * @param persona $persona The persona entity
125   - *
126   - * @return \Symfony\Component\Form\Form The form
127   - */
128   - private function createDeleteForm(persona $persona)
129   - {
130   - return $this->createFormBuilder()
131   - ->setAction($this->generateUrl('persona_delete', array('id' => $persona->getId())))
132   - ->setMethod('DELETE')
133   - ->getForm()
134   - ;
135   - }
136   -}
  116 + *
  117 + * @Route("/borrar/{id}", name="persona_delete") <--- aqui le defines la ruta que va a tomar-->
  118 + * @Method("GET")
  119 + */
  120 + public function deleteAction(Request $request, $id) {
  121 + $em = $this->getDoctrine()->getManager();
  122 + $entity = $em->getRepository('UBVSurUbvBundle:persona')->Find($id);
  123 + $em->remove($entity);
  124 + $em->flush();
  125 +
  126 + $this->get('session')->getFlashBag()->set(
  127 + 'danger', array(
  128 + 'title' => 'Eliminado!',
  129 + 'message' => 'persona Eliminado satisfactoriamente.'
  130 + )
  131 + );
  132 +
  133 + return $this->redirectToRoute('persona_index');
  134 + }
  135 +
  136 + /**
  137 + * Creates a form to delete a persona entity.
  138 + *
  139 + * @param Banco $id The persona entity
  140 + *
  141 + * @return \Symfony\Component\Form\Form The form
  142 + */
  143 + private function createDeleteForm($id) {
  144 + return $this->createFormBuilder()
  145 + ->setAction($this->generateUrl('persona_delete', array('id' => $id)))
  146 + ->setMethod('DELETE')
  147 + ->getForm()
  148 + ;
  149 + }
  150 +}
137 151 \ No newline at end of file
... ...
src/UBV/PracticaBundle/Entity/persona.php
1 1 <?php
2 2  
3 3 namespace UBV\PracticaBundle\Entity;
  4 +use Doctrine\Common\Collections\ArrayCollection;
  5 +use Symfony\Component\Validator\Constraints as Assert;
4 6  
5 7 use Doctrine\ORM\Mapping as ORM;
6 8  
... ... @@ -23,12 +25,36 @@ class persona
23 25  
24 26 /**
25 27 * @var string
26   - *
  28 + * @Assert\NotNull(message= "Por favor introduzca su Nombre", groups={"Default"})
  29 + * @Assert\NotBlank( message= "Por favor introduzca Nombre valido Valido", groups={"Default"})
  30 + * @Assert\Length(
  31 + * min = 2,
  32 + * max = 45,
  33 + * minMessage = "Tu Nombre debe tener como minimo {{ limit }} letras",
  34 + * maxMessage = "Tu Nombre no debe exceder de {{ limit }} letras"
  35 + * )
  36 + * @Assert\Regex(
  37 + * pattern="/\d/",
  38 + * match=false,
  39 + * message="Tu Nombre no debe contener numeros"
  40 + *)
27 41 * @ORM\Column(name="nombre", type="string", length=50)
28 42 */
29 43 private $nombre;
30 44  
31 45 /**
  46 + * @Assert\NotNull(message= "Por favor introduzca su Apellido", groups={"Default"})
  47 + * @Assert\NotBlank( message= "Por favor introduzca Apellido valido Valido", groups={"Default"})
  48 + * @Assert\Length(
  49 + * min = 2,
  50 + * max = 45,
  51 + * minMessage = "Tu Apellido debe tener como minimo {{ limit }} letras",
  52 + * maxMessage = "Tu Apellido no debe exceder de {{ limit }} letras"
  53 + * )
  54 + * @Assert\Regex(
  55 + * pattern="/\d/",
  56 + * match=false,
  57 + * message="Tu Apellido no debe contener numeros")
32 58 * @var string
33 59 *
34 60 * @ORM\Column(name="apellido", type="string", length=50)
... ... @@ -36,6 +62,14 @@ class persona
36 62 private $apellido;
37 63  
38 64 /**
  65 + *@Assert\NotNull(message= "Por favor introduzca un numero de Cedula", groups={"Default"})
  66 + *@Assert\NotBlank( message= "Por favor introduzca un numero de Cedula Valido", groups={"Default"})
  67 + *@Assert\Length(
  68 + * min = 7,
  69 + * max = 12,
  70 + * minMessage = "El numero de Cedula debe tener como minimo {{ limit }} numeros",
  71 + * maxMessage = "El numero de Cedula no debe exceder de {{ limit }} numeros"
  72 + * )
39 73 * @var int
40 74 *
41 75 * @ORM\Column(name="cedula", type="integer", unique=true)
... ... @@ -43,6 +77,7 @@ class persona
43 77 private $cedula;
44 78  
45 79 /**
  80 + * @Assert\Type(type="string", message="El valor {{ value }} no es valido {{ type }}.")
46 81 * @var string
47 82 *
48 83 * @ORM\Column(name="genero", type="string", length=20)
... ... @@ -50,6 +85,7 @@ class persona
50 85 private $genero;
51 86  
52 87 /**
  88 + * @Assert\Type(type="string", message="El valor {{ value }} no es valido {{ type }}.")
53 89 * @var string
54 90 *
55 91 * @ORM\Column(name="direccion", type="string", length=255)
... ...
src/UBV/PracticaBundle/Form/personaType.php
... ... @@ -5,6 +5,9 @@ namespace UBV\PracticaBundle\Form;
5 5 use Symfony\Component\Form\AbstractType;
6 6 use Symfony\Component\Form\FormBuilderInterface;
7 7 use Symfony\Component\OptionsResolver\OptionsResolver;
  8 +use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9 +use Symfony\Component\Validator\Constraints\NotBlank;
  10 +use Symfony\Component\Validator\Constraints\Length;
8 11  
9 12 class personaType extends AbstractType
10 13 {
... ... @@ -13,7 +16,39 @@ class personaType extends AbstractType
13 16 */
14 17 public function buildForm(FormBuilderInterface $builder, array $options)
15 18 {
16   - $builder->add('nombre')->add('apellido')->add('cedula')->add('genero')->add('direccion');
  19 + $builder
  20 + ->add('nombre', null, array(
  21 + 'constraints' => new NotBlank(array('groups' => array('Default'))),
  22 + 'label'=>'Nombre',
  23 + 'attr' => array('class' => 'form-control','placeholder'=>'Primer Nombre'),
  24 + 'label_attr' => array('class' => 'control-label'),
  25 + ))
  26 + ->add('apellido', null, array(
  27 +
  28 + 'constraints' => new NotBlank(array('groups' => array('Default'))),
  29 + 'label'=>'Apellido',
  30 + 'attr' => array('class' => 'form-control','placeholder'=>'Primer Apellido'),
  31 + 'label_attr' => array('class' => 'control-label'),
  32 + ))
  33 + ->add('cedula', null, array(
  34 + 'constraints' => new NotBlank(array('groups' => array('Default'))),
  35 + 'label'=>'Cedula',
  36 + 'attr' => array('class' => 'form-control','placeholder'=>'Ejemplo:18031258'),
  37 + 'label_attr' => array('class' => 'control-label'),
  38 + ))
  39 +
  40 + ->add('genero',
  41 + 'choice', array(
  42 + 'choices' => array(
  43 + 'Masculino' => 'Masculino',
  44 + 'Femenino' => 'Femenino'
  45 + )
  46 + ))
  47 + ->add('direccion', null, array(
  48 + 'constraints' => new NotBlank(array('groups' => array('Default'))),
  49 + 'label'=>'Direccion',
  50 + 'attr' => array('class' => 'form-control','placeholder'=>'Direccion completa'),
  51 + 'label_attr' => array('class' => 'control-label')));
17 52 }/**
18 53 * {@inheritdoc}
19 54 */
... ...