1

/lib/filter/base/ フォルダーに自動生成された BaseBlahBlahBlahFilter.class ファイルがあります。「データ」タイプ フィールドの次の行が含まれています。

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

フォームが読み込まれると、すべての月/日/年のドロップダウンに空の値が表示されます。そのドロップダウンにデフォルト値 (今日の日付など) を設定する方法はありますか?

4

3 に答える 3

2

ウィジェットのレンダリング中にデフォルトのウィジェットの値を無視することにつながるバグあります。パッチsfWidgetFormSchemaを適用した後、あなたはただ言うことができるでしょう

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

たとえばdefault、オプションは機能します。

于 2009-11-25T20:50:14.957 に答える
0

TheGrandWazoo の回答は、sfWidgetFormDate のデフォルト設定については正しいですが、sfWidgetFormDateRange の拡張である sfWidgetFormFilterDate について話しているのです。

sfWidgetFormDateRange は、2 つの別々の日付ウィジェットをカプセル化します。この場合、次のようにして日付を設定します。

$form->setDefault('date', array('from' => date('Y/m/d'), 'to' => date('Y/m/d')));
于 2009-11-25T20:01:55.057 に答える
0

デフォルト値の設定は、フィルタ クラスではなく、フォーム ファイルから行う必要があります。/lib/form にある「BlahBlahBlah.class」ファイルを調べて、configure() メソッドがあるかどうかを確認してください。そうでない場合は、作成します。

class BlahBlahBlahForm extends sfForm
{
  public function configure()
  {

  }
}

基本クラスを「通常の」クラスでいつでもオーバーライドできます。「ベース」部分を除いた同じ名前のファイルを作成し、それを /lib/form (または /lib/filter) ディレクトリに追加します。

そこから、次のようなことができます。

$this->setDefault('from_date', date('Y/m/d'));
$this->setDefault('to_date', date('Y/m/d'));

上記の例では、現在の日付に設定されます。必要に応じて変更してください。

読むための良い出発点は Forms の本です。ここで見つけることができます。

于 2009-11-25T19:26:51.757 に答える