2009-11-25 113 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選項將起作用。

相關問題