次のコードは、複数のチェックボックスを含むフィールドを作成します。これらのチェックボックスのデフォルト値を設定するにはどうすればよいですか?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
実際には動作しますが、コードを投稿する前にテストしましたが、これはウィジェットのスキーマの設定によります。この回答が参考になった場合は、同意してください。いずれにせよ、幸運。 –