sonataadminbundle form and symfony sonata-admin

symfony - and - ¿Hay alguna forma de determinar la acción actual(crear o editar) en Sonata / AdminBundle / Admin / Admin:: configureFormFields()?



symfony 4 sonataadminbundle (6)

Me gustaría crear diferentes campos de configuración para crear y editar acciones en Sonata Admin Bundle.

¿Hay alguna forma de determinarlo excepto comprobando $this->getSubject()->getId() en Sonata/AdminBundle/Admin/Admin::configureFormFields() ?


En sonata admin desde la versión 3.x

if ($this->isCurrentRoute(''create'')) { // CREATE } else { // EDIT }

En la administración de sonata antes de la versión 3.x use:

$subject = $this->getSubject(); if ($subject->isNew()) { // CREATE } else { // EDIT }


También puedes hacer esto:

protected function configureFormFields(FormMapper $formMapper) { if ($this->isCurrentRoute(''create'')) { // CREATE } else { // EDIT } }


También puedes hacer esto:

protected function configureFormFields(FormMapper $formMapper) { if ($this->isCurrentRoute(''create'')) { // CREATE } else { // EDIT } }


Yo uso esto :

$creationMode = ($this->id($this->getSubject()))?(false):(true); if ($creationMode){ //Ok }


con:

if($this->getRequest()->get($this->getIdParameter()) == null){ // create } else { // edit }


public function getAction(): ?string { if (! $this->getRequest()) { return null; } $pathArray = /explode(''/'', $this->request->getPathInfo()); return /end($pathArray); }