0
私はしばらくの間、回答をブラウズしてきましたが、私はここで質問をしました。私はいくつかのSFフォームを使用していますが、何らかの理由でこれをやりたくないのです。私は過去に間違いなく間違いなく見落としてしまったことについて、私は幸運を祈っています。ここでSymfony 1.4フォームバインディングの問題
はスキーマです:
public function configure()
{
//widgets
$this->setWidgets(array(
'study_area' => new sfWidgetFormSelect(array('label' => 'Select Study Area', 'choices' => self::study_areas())),
'degree_level' => new sfWidgetFormSelect(array('label' => 'Select Degree Level', 'choices' => self::degree_levels())),
'campusonline' => new sfWidgetFormSelectRadio(array('choices' => self::campus_online(), 'class' => 'radiolabel')),
'zip' => new sfWidgetFormInputText(array('label' => 'Zip code:')),
));
//validators
$this->setValidators(array(
'study_area' => new sfValidatorString(array('required' => true)),
'degree_level' => new sfValidatorString(array('required' => true)),
'campusonline' => new sfValidatorString(array('required' => true)),
'zip' => new sfValidatorString(array('required' => 'Please enter a valid zip.')),
));
//formatting, default values, name format, etc
$this->getWidgetSchema()->getFormFormatter()->setRowFormat('%label%%error%%field%%help%%hidden_fields%');
$this->setDefaults(array('study_area' => '', 'degree_level' => '', 'campusonline' => 1));
$this->getWidgetSchema()->setLabel('campusonline', false);
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
$this->validatorSchema['zip'] = new sfValidatorZip(array('required' => true));
}
そして、ここではアクションです:
$this->form = new SearchWidgetForm();
if ($request->isMethod('post'))
{
$this->form->bind($request->getParameter('searchwidget'));
if ($this->form->isValid())
{
$this->redirect('@search_widget');
}
else
{
print 'nope';
$this->form->debug();
var_dump($request->getParameter('searchwidget'));
die;
}
}
そして、ここではそのelse
から得られるものです:
nope
study_area: Required.
degree_level: Required.
campusonline: Required.
zip: Required.
_csrf_token: Required.
null
私もことを確認していますvar_dump($this->form->isBound());
は「真」を生成します。したがって...フォームはバインドされていますが、配列はnullになります。
アイデア?
ご協力いただきありがとうございます。とても感謝しております。
あなたには何かがあります。私は名前フォーマットを追加しましたが、現在はバインドされていますが、名前フォーマットが問題を引き起こしているので、私の検索機能では動作しません。奇妙なことは、ちょうど3日前に作った書式に名前の書式は必要ないということです。私は違いが何であるのだろうか?とりあえずありがとう!私は今、正しい方向に少なくとも... –
こんにちは。問題はありません。別の推測をする:)その行がなければ、 '$ request-> getParameter( 'search-widget');'にバインドすると思います。これを確認する最も簡単な方法は、フォームのHTMLソースを見て、タグ名が 'または' "など。 –