Symfony2:如何使form_rest(表单)不显示字段

时间:2012-08-10 08:10:53

标签: php forms symfony

有一些我不喜欢的东西。我真的很讨厌它如何丑陋地渲染日期选择(有三个选择)。我没有找到方法让这些巨大的无标题选择显示符合我自己的风格(或我的网站的风格)。

所以,有两种可能性(和问题):

  • 我如何以及在哪里更改“选择”日期类型以使其更美观?
  • 如果不可能或太难,我会告诉引擎如何以及在何处不显示某个字段(在这种情况下是该日期)?

我知道我可以手动显示每个字段,省略我不想出现的字段。但相反呢?即告诉symfony显示所有字段,但只有一个?

1 个答案:

答案 0 :(得分:1)

首先,Symfony允许您在日期或日期时间字段的不同小部件和格式之间进行选择。这些描述如下:http://symfony.com/doc/current/reference/forms/types/date.html#widget

编辑字段的选项位于“YourEntityType”类中,位于“ROOT / TO / YOUR / BUNDLE / Form”目录中。

示例:

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('datefield', null, array('widget' => 'single_text'));
}

你提出的两种可能性也是可能的。

  1. 对于第一种可能性,您应该查看有关如何自定义表单的文档。 http://symfony.com/doc/current/cookbook/form/form_customization.html
  2. 我想说你可以创建自己的字段类型,将date_time字段作为父字段。

    1. 也可以删除字段'date'。
    2. 在您的控制器中:

      $form = $this->createForm(new EntityType(), $entity);
      $form->remove('name of your field in the entity');
      

      或者在EntityType类中:

      public function buildForm(FormBuilder $builder, array $options)
          {
              $builder->add('onefiled');
              $builder->add('datefield'); //this is the line you must delete
          }