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);
}