我的/ lib / filter / base /文件夹中有一个自动生成的BaseBlahBlahBlahFilter.class文件。它包含“数据”类型字段的以下行:
'date' => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate(), 'with_empty' => true)),
当表单加载时,它会显示所有月/日/年下拉列表的空值。有没有办法可以将默认值(例如今天的日期)设置为下拉?
答案 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')));