php - Symfony2:フォームまたはTwigテンプレートで設定されていない場合でも、フォームフィールドは「必須」になります

原文 php symfony caching nginx

私は次のようにFormクラスのフィールドを定義しています:

->add('alternative_email', 'email', array(
    'trim' => true,
    'required' => false
))


そして、この方法も試しました:

->add('alternative_email', 'text', array(
    'trim' => true,
    'required' => false
))


次に、そのフィールドをレンダリングするテンプレートで、次のようにします。

{{ form_widget(form.user.alternative_email, {'attr':{'class':'form-control'}})}}


そのフォームをレンダリングするときはいつでも、これを出力として取得します。

<input type="email" id="natural_user_alternative_email" name="natural[user][alternative_email]" required="required" class="form-control" data-bv-field="natural[user][alternative_email]">


なぜrequired属性が追加されているのですか?

補足として、私はそのフィールドにこの検証ルールを設定してBootstrapValidatorを使用しています:

'natural[user][alternative_email]': {
    validators: {
        emailAddress: {},
        different: {
            field: 'natural[user][email]',
        }
    }
}


つまり:


有効なメールアドレス
natural[user][email]のメールとは異なる現在のメール(alternative_email)


さらに、app/cacheのコンテンツをすべて手動で削除してキャッシュを数回クリアしました(rm -rf app/ cache)php -r "apc_clear_cache(); apc_clear_cache('user'); apc_clear_cache('opcode');"を実行してAPCキャッシュをクリアし、最後に両方のサービスを再起動しました:php-fpmnginx

また、Chromeの「シークレットウィンドウ」で作業しているため、コンテンツはキャッシュされません。この奇妙な問題について何か助けてもらえますか?

他のテストを実行する:これはどのようにして可能ですか?

問題の原因を特定するために他のテストを実行しましたが、これは不可能なので、現時点で混乱しています。フォームクラスのフィールド定義を次のように変更したことを確認してください:

->add('email_alternative', 'text', array(
    'trim' => true,
    'required' => false
))


そして、私のコードの他の部分には触れなかったので、テンプレートはそのままで、レンダーalternative_emailフィールドを要求しました。予想通りエラーが発生するはずですよね?エラーではなく、ページは引き続きレンダリングされ、フィールドはnatural[user][alternative_email]を呼び出し続けますが、これはどのようにして可能ですか?

Nginxを停止し、Apacheを起動して、何らかの奇妙なキャッシュがすでに存在するかどうかをテストしましたが、以前と同じです。エラーは発生せず、フィールドはnatural[user][alternative_email]を呼び出したままで、手がかりはありますか?

注:私はSymfony 2.6.1を使用しています
答え
私は問題がどこにあるかを見つけました、そしてほとんどいつも開発者(この場合は私)の間違いでありフレームワーク自体ではないので私は言っておくべきです。問題は単純で、A.Lは正しい:コントローラーが同様のフォームを呼び出していたので、他のものに変更を加えた。だから今はすべて元気です。先端のA.Lに感謝
関連記事

javascript - .trigger();を使用した複数のキー押下のシミュレーション

javascript - AJAXは前の値を配列で返します

javascript - Webサイト外でのAPI呼び出しを防ぐ方法[重複]

php - WordPressマルチサイトのすべてのサイトでURLを書き換えます

javascript - カスケードされた選択ボックスでデータベースからデータをフェッチする

php - 別のカスタムフィールドタイプで、分類をカスタムフィールドタイプに関連付けるにはどうすればよいですか?

php - SSLウェブサイトのWordPress安全でないコンテンツ

php - WordpressショートコードがWPページテキストエディターで機能しない

php - 現在の位置からデータベースから情報を取得する方法は?

php - HTML内にXMLを表示する