HTML   发布时间:2022-04-14  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在自定义symfony表单字段类型中默认为空的_value选项?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个自定义表单字段下拉列表,按年份进行过滤.我想做的一件事是允许用户过滤所有年份,这是默认选项.我将此添加为空值.但是,当我呈现表单时,它默认在第一个不是空值的项目.空值在那里,就在列表的上方.在页面初始加载时,如何使页面默认为“All”?代码如下.
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;

class YearType extends AbstractType
{

  private $yearChoices;

  public function __construct()
  {
      $thisYear = date('Y');
      $startYear = '2012';

      $this->yearChoices = range($thisYear,$startYear);
  }

  public function getDefaultOptions(array $options)
  {
    return array(
        'empty_value' => 'All','choices' => $this->yearChoices,);
  }

  public function getParent(array $options)
  {
    return 'choice';
  }

  public function getName()
  {
    return 'year';
  }
}

我用一个简单的{{form_widget(filter_form)}}在twig中呈现我的表单

解决方法

尝试添加empty_data选项为null,所以它是第一.我有很多这样的领域,它的工作,例如:
class genderType extends \Symfony\Component\Form\AbstractType
{

    public function getDefaultOptions(array $options)
    {
        return array(
            'empty_data'  => null,'empty_value' => "Non specificato",'choices'     => array('m' => 'Uomo','f' => 'Donna'),'required'    => false,);
    }

    public function getParent(array $options) { return 'choice'; }

    public function getName() { return 'gender'; }

}

编辑:另一种可能性(我想)将设置为preferred_choices.这样,您将获得顶部的“全部”选项.但是我不知道它是否可以使用Null empty_data,但是您可以将empty_data更改为任何您想要的:

public function getDefaultOptions(array $options)
  {
    return array(
        'empty_value'       => 'All','empty_data'        => null,'choices'           => $this->yearChoices,'preferred_choices' => array(null)         // Match empty_data
    );
  }

大佬总结

以上是大佬教程为你收集整理的如何在自定义symfony表单字段类型中默认为空的_value选项?全部内容,希望文章能够帮你解决如何在自定义symfony表单字段类型中默认为空的_value选项?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。