Если вы ищете быструю реализацию админ-панели, стоит посмотреть SonataAdminBundle.
Вы устанавливаете с помощью композитора & импорта несколько маршрутов, а оттуда, это вопрос определения администратора услуг, а также классы, которые ссылаются на ваш Products
, News
и Article
сущности.
Мне нравится, потому что он расширяемый & очень быстрый, чтобы его настроить. Он также может обрабатывать отношения между объектами, вставляя один интерфейс администратора в другой прямо из коробки, в дополнение к формам фильтрации, и разрешать/отключать маршруты для каждого объекта. Кроме того, шаблоны ветви являются супермодульными и могут быть легко переопределены.
Как простой пример (который предполагает ОРМ) после того, как вы установили SonataAdmin, добавить в определении службы: (например, взяты из Sonata Admin Docs.)
services:
sonata.admin.pprodut:
class: Acme\DemoBundle\Admin\ProductAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Content", label: "Product" }
arguments:
- ~
- Acme\DemoBundle\Entity\Product
- ~
... и ProductAdmin
класс, чтобы соответствовать ,
<?php
// src/Acme/DemoBundle/Admin/ProductAdmin.php
namespace Acme\DemoBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
class ProductAdmin extends Admin
{
// Fields to be shown on create/edit forms
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', 'text', array('label' => 'Product Title'))
->add('sku', 'text')
->add('description') //if no type is specified, SonataAdminBundle tries to guess it
// Other fields ...
;
}
// Fields to be shown on filter forms
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
$datagridMapper
->add('title')
->add('sku')
;
}
// Fields to be shown on lists
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('title')
->add('sku')
;
}
}
И вы отправились на гонки.
Однако, если это упражнение для вас, а не возможное переосмысление колеса, SonataAdmin все еще может служить хорошим справочным комплектом. :)