<?php
namespace AdminBundle\Admin\Insurance;
use AdminBundle\Admin\BaseAdmin;
use InsuranceBundle\Entity\MediationService;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Form\Type\ModelType;
use Sonata\AdminBundle\Route\RouteCollectionInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class MediationServiceMediatorAdmin extends BaseAdmin
{
protected function configureRoutes(RouteCollectionInterface $collection): void
{
$collection->remove('view');
$collection->remove('delete');
}
public function prePersist($object): void
{
parent::prePersist($object);
}
public function preUpdate($object): void
{
parent::preUpdate($object);
}
protected function configureFormFields(FormMapper $formMapper): void
{
$queryBuilder = $this->getModelManager()
->getEntityManager(MediationService::class)
->createQueryBuilder('mediation_service')
->select('mediation_service')
->from(MediationService::class, 'mediation_service');
$formMapper
->add('title_ua', null, ['label' => 'Название UA'])
->add('title_ru', null, ['label' => 'Название RU'])
->add('state', null, ['label' => 'Показывать на сайте'])
->add('mediation_service', ModelType::class, [
'label' => 'Услуга',
'query' => $queryBuilder,
'btn_add' => false,
'required' => true,
'multiple' => false,
])
->end();
}
/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper): void
{
$queryBuilder = $this->getModelManager()
->getEntityManager(MediationService::class)
->createQueryBuilder('mediation_service')
->select('mediation_service')
->from(MediationService::class, 'mediation_service');
/** @var MediationService $item */
foreach ($queryBuilder->getQuery()->getResult() as $item) {
$models[$item->getId()] = $item->getTitleRu();
}
$listMapper->addIdentifier('id')
->add('title_ru', null, ['label' => 'Название'])
->add('state', null, ['label' => 'Отображаеться на сайте', 'editable' => true, 'choices' => [
1 => 'Да',
0 => 'Нет',
null => 'Нет']])
->add('mediation_service', EntityType::class, [
'class' => MediationService::class,
'label' => 'Услуга',
])
->add('_action', 'actions', [
'label' => 'Действия',
'actions' => [
'edit' => [],
]
]);
}
}