【问题标题】:Symfony2: How to make form_rest(form) not to display a fieldSymfony2:如何使 form_rest(form) 不显示字段
【发布时间】:2012-08-10 08:10:52
【问题描述】:

有些东西我不喜欢。我真的很讨厌它使日期选择文件(三个选择)变得多么丑陋。我找不到让那些巨大的无样式选择显示适合我自己的风格(或我的网站的风格)的方法。

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

  • 我将如何以及在何处更改“选择”日期类型以使其更漂亮?
  • 如果不可能或太难,我将如何以及在哪里告诉引擎不显示某个字段(在本例中为日期)?

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

【问题讨论】:

    标签: php forms symfony


    【解决方案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

    我想说你可以创建你自己的字段类型,它将 date_time 字段作为父字段。

    1. 也可以删除“日期”字段。

    在你的控制器中:

    $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
        }
    

    【讨论】:

      猜你喜欢
      • 2012-05-21
      • 1970-01-01
      • 2012-04-11
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      相关资源
      最近更新 更多