以下代碼創建一個包含多個複選框的字段。如何設置這些複選框的默認值?Symfony 1.4 - 如何在sfWidgetFormChoice上設置默認值(複選框)
new sfWidgetFormChoice(array(
"choices" => $choices,
"label" => "Label",
"multiple" => true,
"expanded" => true
));
以下代碼創建一個包含多個複選框的字段。如何設置這些複選框的默認值?Symfony 1.4 - 如何在sfWidgetFormChoice上設置默認值(複選框)
new sfWidgetFormChoice(array(
"choices" => $choices,
"label" => "Label",
"multiple" => true,
"expanded" => true
));
您可以手動設置的默認值:
$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()
檢查。
如果您有與選擇
$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')
或者,如果你只是喜歡按您希望它們顯示的順序排列您的選擇
此特定方法無效,但解決方法有意義:$ this-> setDefault('countries',array(0,1))同樣值得注意的是, 0和1對應於i $ countries數組中的ndices。這些指數也可以是字符串。 – afilina 2012-03-21 12:45:03
實際上它確實有效,我在發佈代碼之前對它進行了測試,它僅取決於您的小部件架構如何設置。如果你發現這個答案有幫助,請接受。無論哪種方式,祝你好運。 – 2012-03-21 16:34:51