Número de lecturas: 2540
{lang: 'es-419'}

A veces es necesario ingresar directamente un registro a la base de datos el cual no debe ser manipulado previamente simplemente sirve como un campo de auditoria y de esta manera revisar en que fecha se realizo el cambio.

Cuando utilizamos el CRUD generado por Symfony2 nos genera en el update una función similar a esta:

public function updateAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
 
$entity = $em->getRepository('AppBundle:ControlCambios')->find($id);
 
if (!$entity) {
 
throw $this->createNotFoundException('Unable to find ControlCambios entity.');
}
 
$deleteForm = $this->createDeleteForm($id);
$editForm = $this->createEditForm($entity);
 
$editForm->handleRequest($request);
 
if ($editForm->isValid()) {
$em->flush();
 
return $this->redirect($this->generateUrl('controlcambios_edit', array('id' => $id)));
}
 
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
);
}

Simplemente para agregar este registro en el campo previamente creado basta con agregar la siguiente linea:

//Agrega directamente la fecha de la ultima revision
$entity->setFechaUltimaRevision(new \DateTime());

El método finalmente quedaría de la siguiente manera:

public function updateAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
 
$entity = $em->getRepository('AppBundle:ControlCambios')->find($id);
//Agrega directamente la fecha de la ultima revision
$entity->setFechaUltimaRevision(new \DateTime());
 
if (!$entity) {
 
throw $this->createNotFoundException('Unable to find ControlCambios entity.');
}
 
$deleteForm = $this->createDeleteForm($id);
$editForm = $this->createEditForm($entity);
 
$editForm->handleRequest($request);
 
if ($editForm->isValid()) {
$em->flush();
 
return $this->redirect($this->generateUrl('controlcambios_edit', array('id' => $id)));
}
 
return array(
'entity' => $entity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
);
}
Be Sociable, Share!