I\'d like to create different fields configuration for create and edit actions in Sonata Admin Bundle.
Is there any way to determine it except checking $this->g
In sonata admin from version 3.x
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
In sonata admin before version 3.x use:
$subject = $this->getSubject();
if ($subject->isNew()) {
// CREATE
}
else {
// EDIT
}
You can also do this:
protected function configureFormFields(FormMapper $formMapper) {
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
}
public function getAction(): ?string
{
if (! $this->getRequest()) {
return null;
}
$pathArray = \explode('/', $this->request->getPathInfo());
return \end($pathArray);
}
with:
if($this->getRequest()->get($this->getIdParameter()) == null){
// create
} else {
// edit
}
You can also do this:
protected function configureFormFields(FormMapper $formMapper) {
if ($this->isCurrentRoute('create')) {
// CREATE
}
else {
// EDIT
}
}
I use this :
$creationMode = ($this->id($this->getSubject()))?(false):(true);
if ($creationMode){
//Ok
}