ikucheriavenko
2/26/2017 - 2:53 PM

Override edit twig template in SonataAdminBundle

Override edit twig template in SonataAdminBundle

{% extends 'SonataAdminBundle:CRUD:base_edit.html.twig' %}
 
{% block sonata_tab_content %}
 
        <div class="{{ admin.formgroups.General.class|default('col-md-12') }}">
            <div class="box box-success">
                <div class="box-header">
                    <h4 class="box-title">
                        {{ admin.trans(admin.formgroups.General.name, {}, admin.formgroups.General.translation_domain) }}
                    </h4>
                </div>
                <div class="box-body">
                    <div class="sonata-ba-collapsed-fields">                                
                        {{ form_widget(form[admin.formgroups['General']['fields']['branch']]) }}
                    </div>
                </div>
            </div>
        </div>

{% endblock %}
services:
    sonata.admin.contract:
        class: Acme\Bundle\ContractBundle\Admin\ContractAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Contracts", label_catalogue: "messages", label: "Contracts" }
        arguments:
            - ~
            - Acme\Bundle\ContractBundle\Entity\Contract
            - ~         
        calls:
            - [ setTemplate, [edit, AcmeContractBundle:ContractAdmin:edit.html.twig]]
            - [ setSecurityContext, [@security.context]]
<?php

namespace Acme\Bundle\ContractBundle\Admin;

use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;

use Symfony\Component\Security\Core\SecurityContextInterface;

class ContractAdmin extends Admin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('number', 'text')
                ->add('branch', 'sonata_type_model_autocomplete', array(
                        'property' => 'name',
                        'minimum_input_length' => 2
                    ))
            ->end()
        ;
    }
}