EasyAdmin как остаться в форме редактирования

Как остаться в форме редактирования и не перенаправлять в список после сохранения объекта? Я пытался с действиями, но ничего не работает.

С наилучшими пожеланиями

1 ответ

EasyAdmin жестко запрограммировал поведение перенаправления в методе "redirectToReferrer()" в AdminController.php. Порядок правил перенаправления:

  1. перенаправить в список, если это возможно
  2. из нового | редактировать действие, перенаправить для редактирования, если это возможно
  3. от нового действия, перенаправить на новое, если это возможно
  4. еще: перенаправить на домашнюю страницу

То, что вы хотите, это переключить второе правило с первым правилом.

Вы можете сделать это, расширив AdminController.php и переопределив метод "redirectToReferrer()" своей собственной логикой и изменив порядок правил перенаправления.

Чтобы быть немного менее инвазивным, вы можете переопределить его следующим образом:

/**
 * @return \Symfony\Component\HttpFoundation\RedirectResponse
 */
protected function redirectToReferrer()
{
    $refererAction = $this->request->query->get('action');

    // from new|edit action, redirect to edit if possible
    if (in_array($refererAction, array('new', 'edit')) && $this->isActionAllowed('edit')) {
        return $this->redirectToRoute('easyadmin', array(
            '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();
}

Таким образом, ваше правило применяется в первую очередь, и если оно не соответствует исходным правилам перенаправления. Вы также можете добавить сюда сообщения, чтобы подтвердить, что объект был успешно сохранен.

Другие вопросы по тегам