<?php
declare(strict_types=1);
namespace App\Infrastructure\Controller\Admin;
use AlterPHP\EasyAdminExtensionBundle\Controller\EasyAdminController;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\PropertyAccess\PropertyAccess;
class BaseController extends EasyAdminController
{
protected function redirectToReferrer(): RedirectResponse
{
$action = $this->request->request->get('submit-action');
$refererAction = $this->request->query->get('action');
if ($action && $action === "submit-without-leave" && $this->isActionAllowed('edit')) {
if (\in_array($refererAction, ['new', 'edit'])) {
return $this->redirectToRoute('easyadmin', [
'action' => 'edit',
'entity' => $this->entity['name'],
'menuIndex' => $this->request->query->get('menuIndex'),
'submenuIndex' => $this->request->query->get('submenuIndex'),
'id' => ('new' === $refererAction)
? PropertyAccess::createPropertyAccessor()->getValue($this->request->attributes->get('easyadmin')['item'], $this->entity['primary_key_field_name'])
: $this->request->query->get('id'),
]);
}
}
return parent::redirectToReferrer();
}
}