Есть ли способ определить текущее действие (создать или отредактировать) в 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
}