2009年3月28日土曜日

 

【symfony】formのsetDefaults

/* アクション内でフォームのデフォルト値 */
  $this->form = new ModelForm();
  $this->form->setDefault('name', 'value'); 

setDefaults()を使えば連想配列で複数指定できるけど、リセットされるのでモデル内で設定したものが上書きされ無い様に、getDefaults()してそれに追加してから渡すように注意。

と、いう事らしいんだが次のようにモデル、アクション両方で指定した場合、inputタグのvalue属性値のデフォルトは空になった。

/* フォームのデフォルト値 - 失敗 */
  // モデル
  $this->widgetSchema['user_id'] = new sfWidgetFormInputHidden(array(),array('value'=>'3'));
  // アクション
  $this->form->setDefault("user_id", "1");
  // 生成された
  <input value="" type="hidden" name="model[user_id]" id="model_user_id" />

以下であれば大丈夫。

/* フォームのデフォルト値 - アクション内 */
  // モデル
  $this->widgetSchema['user_id'] = new sfWidgetFormInputHidden();
  // アクション
  $this->form->setDefault("user_id", "1");

または

/* フォームのデフォルト値 - モデル内 */
  // アクション
  $this->widgetSchema['user_id'] = new sfWidgetFormInputHidden(array(),array('value'=>'3'));

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google