Хотя создание стандартного CRUD Symfony2 работает идеально (очевидно, изменяя сгенерированный по умолчанию код), в администраторе сонаты я не могу его интегрировать. У меня есть некоторые проблемы с наследованием шаблона и переменными шаблона.
Мой план — вставить этого администратора в другой встроенный EntityAdmin, но я не могу сделать это даже для одного объекта. (в данном случае MapAdmin)
это мой MapAdmin
Код: Выделить всё
namespace Acme\MapBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
class MapAdmin extends Admin {
// Fields to be shown on create/edit forms
protected function configureFormFields(FormMapper $formMapper) {
$formMapper
->add('descripcion', 'acme_map')
->add('latitude', 'acme_map')
->add('longitude', 'acme_map')
->add('zoom', 'acme_map')
;
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper) {
$datagridMapper
->add('descripcion', null, array('label' => 'Mapa'))
;
}
// Fields to be shown on lists
protected function configureListFields(ListMapper $listMapper) {
$listMapper
->addIdentifier('descripcion')
;
}
public function getFormTheme() {
return array_merge(
parent::getFormTheme(), array(
'AcmePlacesBundle:Resources:Views:Mapa:admincreate.html.twig')
);
}}
Код: Выделить всё
namespace Acme\PlacesBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class MapType extends AbstractType {
public function getParent()
{
return 'text';
}
/**
* @return string
*/
public function getName() {
return 'acme_map';
}
}
Код: Выделить всё
{% extends '::SonataAdminBundle:Form:form_admin_fields.html.twig' %}
{% block stylesheets %}
{{ parent() }}
{% endblock %}
{% block javascripts %}
{{ parent() }} #}
{% endblock %}
{% block acme_map_widget %}
{# #}
{{ form_errors(form.busqueda) }}
{{ form_widget(form.busqueda) }}
Google Maps
{# #}
{{ form_errors(form.latitude) }}
{{ form_widget(form.latitude) }}
{# #}
{{ form_errors(form.longitude) }}
{{ form_widget(form.longitude) }}
{##}
{{ form_errors(form.zoom) }}
{{ form_widget(form.zoom) }}
{% endblock %}
Шаблон "SonataAdminBundle:Form:form_admin_fields.html .twig" нельзя
использовать в качестве признака в AcmePlacesBundle:Mapa:admincreate.html.twig в
строке 1.
и я не знаю, как получить доступ к полям cariables, определенным в MapAdmin.php в шаблоне ветки. {{ form.latitude }} не работает
Помогите, пожалуйста!
Подробнее здесь: https://stackoverflow.com/questions/290 ... formmapper