18 / 02 / 2014
Generar documentos en PDF desde nuestras aplicaciones desarrolladas con Symfony2 es una tarea bastante común y muy sencilla de llevar a cabo gracias al bundle KnpSnappyBundle.
Si desarrollando un backend con Sonata Admin en Symfony2 tienes la necesidad de cargar un valor por defecto en uno o más campos, este minitutorial puede resultarte muy útil.
Pongamos el ejemplo de una entidad Producto con un campo activo de tipo boolean, y queremos que cuando vayamos a crear un nuevo producto, por defecto aparezca marcado el checkbox de ese campo activo. Lo que haremos será, en nuestra clase ProductoAdmin, sobreescribir el método getNewInstance() de la clase padre asignando el valor por defecto al campo o campos que corresponda:
<?php
namespace Vabadus\AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
class ProductoAdmin extends Admin
{
public function getNewInstance()
{
$producto = parent::getNewInstance();
$producto->setActivo(true);
return $producto;
}
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('activo')
// ...
;
}
// ...
}
En este caso únicamente asignamos un valor por defecto a un campo determinado, pero podríamos hacerlo con todos los campos que quisiéramos de la entidad Producto.