2017-02-06 7 views
0

У меня есть 2 объекта. Компания и магазины.Symfony 3 - Sonata Admin Bundle - configureFormFields отключает поля при добавлении из другого объекта

Когда я добавляю компанию, я могу добавить магазин тоже. Моя проблема заключается в том, что, добавляя это над сущностью компании, я не хочу видеть поле «компания» в форме.

Поле «компания» должно отображаться только в том случае, если я добавляю магазин непосредственно над «Сохранить добавить».

Возможно ли удалить или отключить это поле при добавлении магазина в компанию?

Большое спасибо.

UPDATE

это мой ClientAdmin.php

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('name', null, array(
      'label' => 'Name' 
     )) 
     ->add('email', 'email', array(
      'label' => 'E-Mail' 
     )) 
     ->add('street', null, array(
      'label' => 'Straße' 
     )) 
     ->add('streetno', null, array(
      'label' => 'Haus Nr.' 
     )) 
     ->add('city', null, array(
      'label' => 'Ort' 
     )) 
     ->add('zip', null, array(
      'label' => 'PLZ' 
     )) 
     ->add('stores', 'sonata_type_model', array(
      'multiple' => true, 
      'by_reference' => false, 
      'class' => 'StoreBundle\Entity\Store', 
      'label' => 'Filialen', 
     )) 
    ; 
} 

это мой StoreAdmin.php

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $formMapper 
     ->add('name', null, array(
      'label' => 'Name', 
     )) 
     ->add('number', null, array(
      'label' => 'Nummer', 
     )) 
     ->add('street', null, array(
      'label' => 'Straße', 
     )) 
     ->add('streetno', null, array(
      'label' => 'Haus Nr.', 
     )) 
     ->add('zip', null, array(
      'label' => 'PLZ', 
     )) 
     ->add('city', null, array(
      'label' => 'Stadt', 
     )) 
     ->add('email', null, array(
      'label' => 'E-Mail', 
      'required' => false, 
     )) 
     ->add('client', 'sonata_type_model', array(
      'required' => false, 
      'multiple' => false, 
      'by_reference' => false, 
      'class' => 'ifabrik\ClientBundle\Entity\Client', 
      'label' => 'Unternehmen', 
     )) 
     ->add('editor', 'sonata_type_model', array(
      'required' => false, 
      'multiple' => false, 
      'by_reference' => false, 
      'class' => 'UserBundle\Entity\User', 
      'label' => 'Bearbeiter', 
     )) 
    ; 
} 
+0

Можете ли вы поделиться configureFormField ваших 2 лиц угождают – pbenard

+0

@pbenard сделано :) – cRsakaWolf

ответ

0

ИТАК в вашем storeAdmin вы можете проверить, если у вас уже есть клиент для визуализации поля клиента или нет.

protected function configureFormFields(FormMapper $formMapper) 
{ 
    $subject = $this->getSubject(); 
    $isNew = null === $subject->getClient(); 

    $formMapper 
     ->add('name', null, array(
      'label' => 'Name', 
     )) 
     ->add('number', null, array(
      'label' => 'Nummer', 
     )) 
     ->add('street', null, array(
      'label' => 'Straße', 
     )) 
     ->add('streetno', null, array(
      'label' => 'Haus Nr.', 
     )) 
     ->add('zip', null, array(
      'label' => 'PLZ', 
     )) 
     ->add('city', null, array(
      'label' => 'Stadt', 
     )) 
     ->add('email', null, array(
      'label' => 'E-Mail', 
      'required' => false, 
     )); 
    if ($isNew) { 
     $formMapper 
     ->add('client', 'sonata_type_model', array(
      'required' => false, 
      'multiple' => false, 
      'by_reference' => false, 
      'class' => 'ifabrik\ClientBundle\Entity\Client', 
      'label' => 'Unternehmen', 
     )); 
    } 
    $formMapper 
     ->add('editor', 'sonata_type_model', array(
      'required' => false, 
      'multiple' => false, 
      'by_reference' => false, 
      'class' => 'UserBundle\Entity\User', 
      'label' => 'Bearbeiter', 
     )) 
    ; 
} 
+0

Но что, если я действительно новый? Соната дает клиенту новый магазин? – cRsakaWolf

+0

Если у вас есть новый, значит, клиент получает значение null, поэтому поле отображается. – pbenard

+0

Я попробую :) Спасибо u – cRsakaWolf

 Смежные вопросы

  • Нет связанных вопросов^_^