Есть ли способ определить текущее действие (создать или отредактировать) в Sonata\AdminBundle\Admin\Admin:: configureFormFields()? Я хотел бы создать различные настройки полей для создания и редактирования действий в пакете Admin Sonata. Есть ли способ определить его, кроме проверки $this->getSubject()->getId() в Sonata\AdminBundle\Admin\Admin::configureFormFields()? Ответ 1 Вы также можете сделать это: protected function configureFormFields(FormMapper $formMapper) { if ($this->id($this->getSubject())) { // EDIT } else { // CREATE } } Ответ 2 с: if($this->getRequest()->get($this->getIdParameter()) == null){ // create } else { // edit } Ответ 3 Я использую это: $creationMode = ($this->id($this->getSubject()))?(false):(true); if ($creationMode){ //Ok }
Ответ 1 Вы также можете сделать это: protected function configureFormFields(FormMapper $formMapper) { if ($this->id($this->getSubject())) { // EDIT } else { // CREATE } }
Ответ 2 с: if($this->getRequest()->get($this->getIdParameter()) == null){ // create } else { // edit }
Ответ 3 Я использую это: $creationMode = ($this->id($this->getSubject()))?(false):(true); if ($creationMode){ //Ok }