<?php
declare(strict_types=1);
namespace App\Nolimit\Country\Admin;
use App\Entity\Country;
use App\Entity\Traits\ToStringNameTrait;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
final class CountryAdmin extends AbstractAdmin
{
use ToStringNameTrait;
protected function configureDatagridFilters(DatagridMapper $filter): void
{
$filter
->add('name')
;
}
protected function configureListFields(ListMapper $list): void
{
$list
->add('name')
->add('isDefault')
->add(ListMapper::NAME_ACTIONS, null, [
'actions' => [
'show' => [],
'edit' => [],
'delete' => [],
],
]);
}
protected function configureFormFields(FormMapper $form): void
{
$form
->add('name')
->add('isDefault')
;
}
protected function configureShowFields(ShowMapper $show): void
{
$show
->add('name')
->add('isDefault')
;
}
public function toString($object): string
{
return $object instanceof Country
? $object->getName()
: 'Entity name is missing'; // shown in the breadcrumb on the create view
}
}