Symfony 5.4,自定义窗体以仅显示年份

pn9klfpd  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(103)

添加了年份的当前buildForm

->add('year', DateType::class, array(
'label' => 'Select Year',
'widget' => 'choice',
'years' => range(Date('Y'), 2000)

用于自定义月和日属性的小树枝文件(这在以前是有效的)

{{ form_widget(form.year['day'], {'attr':{'style':'display:none'}}) }}
{{ form_widget(form.year['month'], {'attr':{'style':'display:none'}}) }}

It currently displays this image, would like it to display the year only
我试过改变小枝文件,在表单生成器中添加一个类,到目前为止似乎都不起作用。

eqfvzcg8

eqfvzcg81#

如果字段只是一个整数,可以直接使用ChoiceType,将'choices'选项设置为年份范围,并配置'choice_label'选项以使用该值。

<?php

namespace App\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;

class YearType extends AbstractType
{
  public function buildForm(FormBuilderInterface $builder, array $options): void
  {
    $builder
      ->add('year', ChoiceType::class, [
        'label'        => 'Select Year',
        'choices'      => range(Date('Y'), 2000),
        'choice_label' => function ($value) {
          return $value;
        },
      ])
    ;
  }

}

上面的YearType渲染如下:

<form name="year" method="post"><div id="year"><div><label for="year_year" class="required">Select Year</label><select id="year_year" name="year[year]"><option value="2023">2023</option><option value="2022">2022</option><option value="2021">2021</option><option value="2020">2020</option><option value="2019">2019</option><option value="2018">2018</option><option value="2017">2017</option><option value="2016">2016</option><option value="2015">2015</option><option value="2014">2014</option><option value="2013">2013</option><option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option></select></div><input type="hidden" id="year__token" name="year[_token]" value="9f14.o4haGhHOQ5-4CrGAkoeXWo94meRfttZPMpyzdrCmQdw.ydIdciiXJsngeuvs98b6Frkwrrdo05sOW-TwDuXVKu2O3jUjcpw0xsJsiQ"></div></form>

相关问题