我在Symfony2项目中使用Sonata Admin Bundle。在一种形式中,我有一个包含两个项目的选项列表,' article'和'事件',以及日期字段,仅当事件'在列表中选择。
如何根据列表中的哪个值进行解除/启用?
以下是我的相关代码:
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title', null, array(
'label' => 'Titre',
))
->add('type', 'choice', array('choices' => array('0' => 'Article', '1' => 'Evénement',)) )
->add('gameDate', null, array('required' => false));
}
感谢您的帮助。
答案 0 :(得分:1)
如果您只是根据选择显示其他字段
,则可能:https://sonata-project.org/bundles/admin/master/doc/reference/form_types.html#sonata-adminbundle-form-type-choicefieldmasktype答案 1 :(得分:0)
只是为了节省一些滚动,这里是文档的相关部分:
13.1.5。 SONATA \ ADMINBUNDLE \ FORM \型号\ CHOICEFIELDMASKTYPE 根据选择,仅显示相关字段。其他字段是隐藏的。
<?php
// src/AppBundle/Admin/AppMenuAdmin.php
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Form\Type\ChoiceFieldMaskType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class AppMenuAdmin extends AbstractAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('linkType', ChoiceFieldMaskType::class, [
'choices' => [
'uri' => 'uri',
'route' => 'route',
],
'map' => [
'route' => ['route', 'parameters'],
'uri' => ['uri'],
],
'placeholder' => 'Choose an option',
'required' => false
])
->add('route', TextType::class)
->add('uri', TextType::class)
->add('parameters')
;
}
}