有没有办法为sfWidgetFormFilterDate小部件设置默认值?

时间:2009-11-25 19:16:20

标签: forms symfony1 default-value propel

我的/ lib / filter / base /文件夹中有一个自动生成的BaseBlahBlahBlahFilter.class文件。它包含“数据”类型字段的以下行:

'date'         => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => true)),

当表单加载时,它会显示所有月/日/年下拉列表的空值。有没有办法可以将默认值(例如今天的日期)设置为下拉?

3 个答案:

答案 0 :(得分:2)

sfWidgetFormSchema中有a bug导致在呈现小部件时忽略默认小部件的值。应用a patch后,您将能够告诉

'date'         => new sfWidgetFormFilterDate(array(
    'from_date' => new sfWidgetFormDate(array('default' => date())), 
    'to_date' => new sfWidgetFormDate(array('default' => date())), 
    'with_empty' => true)),

e.g。 default选项可以使用。

答案 1 :(得分:0)

必须从表单文件而不是过滤器类中设置默认值。只需在/ lib / form中查找你的'BlahBlahBlah.class'文件,并检查它是否有configure()方法。如果没有,请创建它:

class BlahBlahBlahForm extends sfForm
{
  public function configure()
  {

  }
}

您始终可以使用“普通”类覆盖基类。只需创建一个具有相同名称的文件,减去“Base”部分,然后将其添加到/ lib / form(或/ lib / filter)目录中。

从那里你可以做类似的事情:

$this->setDefault('from_date', date('Y/m/d'));
$this->setDefault('to_date', date('Y/m/d'));

在上面的示例中,它将其设置为当前日期。根据自己的需要进行修改。

阅读的良好开端是形式书。你可以找到它here

答案 2 :(得分:0)

TheGrandWazoo的答案对于设置sfWidgetFormDate的默认值是正确的,但是,我们讨论的是sfWidgetFormFilterDate,它是sfWidgetFormDateRange的扩展。

sfWidgetFormDateRange封装了两个单独的日期窗口小部件。在这种情况下,您可以设置日期,如下所示:

$form->setDefault('date', array('from' => date('Y/m/d'), 'to' => date('Y/m/d')));