Blog


Valor por defecto en un campo de formulario usando Sonata Admin y Symfony

VALOR POR DEFECTO EN UN CAMPO DE FORMULARIO USANDO SONATA ADMIN Y SYMFONY

14 / 02 / 2014 Symfony

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.



ARTÍCULOS RELACIONADOS