![](/img/trans.png)
[英]How to use existing Symfony FormType in Sonata Admin Bundle configureFormFields?
[英]Symfony 3 - Sonata Admin Bundle - configureFormFields disable fields when added from another entity
我有2個實體。 公司和商店。
當我添加公司時,我也可以添加商店。 我的問題是,在公司實體上添加此內容時,我不想在表單上看到字段“公司”。
僅當我直接在“商店添加”上方添加商店時,才應顯示“公司”字段。
在公司實體上添加商店時,是否可以刪除或禁用此字段?
非常感謝。
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',
))
;
}
好的,因此您可以在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',
))
;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.