2009-11-25 96 views
1

我在我的/ lib/filter/base /文件夹中有一个自动生成的BaseBlahBlahBlahFilter.class文件。它包含以下行“数据”类型的字段:有没有办法设置sfWidgetFormFilterDate小部件的默认值?

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

加载窗体时它为我所有的月/日/年的下拉菜单为空值。有没有一种方法可以将默认值(例如今天的日期)设置为该下拉菜单?

回答

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')); 

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

阅读的好开始是Forms书。你可以找到它here

0

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

sfWidgetFormDateRange封装了两个单独的日期小部件。在这种情况下,你会设定日期做类似如下:

$form->setDefault('date', array('from' => date('Y/m/d'), 'to' => date('Y/m/d'))); 
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)), 

例如default选项将起作用。

相关问题