2012-03-20 56 views

回答

4

您可以手動設置的默認值:

$countries = array(
    'Spain', 
    'England', 
    'France' 
); 

$this->widgetSchema['countries'] = new sfWidgetFormChoice(array('choices' => $countries, 'multiple' => true, 'expanded' => true)); 

// Form will render with Spain and England pre-selected 
$this->widgetSchema['countries']->setDefault(array(0,1)); 

如果以該形式相關的對象不是新的,則默認值將根據存儲的值預先選定的,所以你可能需要在最後一行添加一個$this->getObject()->isModified()檢查。

+1

此特定方法無效,但解決方法有意義:$ this-> setDefault('countries',array(0,1))同樣值得注意的是, 0和1對應於i $ countries數組中的ndices。這些指數也可以是字符串。 – afilina 2012-03-21 12:45:03

+0

實際上它確實有效,我在發佈代碼之前對它進行了測試,它僅取決於您的小部件架構如何設置。如果你發現這個答案有幫助,請接受。無論哪種方式,祝你好運。 – 2012-03-21 16:34:51

0

如果您有與選擇

$this->widgetSchema['example_select_export'] = new sfWidgetFormChoice(array(
             'multiple' => false, 
             'expanded' => false, 
             'choices' => array("csv" => "CSV", "excel" => "Excel", "csv_mac" => "CSV mac") 

           ); 
$choices = array("csv" => "CSV", "excel" => "Excel", "csv_mac" => "CSV mac"); 

您可以設置默認的行動,你必須創建窗體調用一個小窗口的形式是

$this->form->setDefault('example_select_export','csv') 

或者,如果你只是喜歡按您希望它們顯示的順序排列您的選擇

相關問題