我有2个实体。 公司和商店。
当我添加公司时,我也可以添加商店。 我的问题是,当在公司实体上添加这个时,我不想看到该领域的公司'在表格上。
'公司'只有当我直接在商店添加'添加商店时才会显示字段。
在公司实体上添加商店时,是否可以删除或禁用此字段?
非常感谢。
更新
这是我的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 :(得分: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',
))
;
}