3

twig テンプレートでフォーム エラーをレンダリングするform_errorsには、それがグローバル フォーム エラーであるかフィールド エラーであるかにかかわらず、twig マクロを使用するだけで済みます。

しかし、私の場合、グローバル エラーはフィールド エラーのようにレンダリングされないform_errorsため、この 2 つのケースでは twig マクロを使用できません。Symfony\Component\Form\FormViewフィールド エラーにマクロを使用することにしました。オブジェクトからグローバル フォーム エラーを取得したいと考えています。目標は、twig テンプレートでグローバル エラーを反復処理し、必要に応じてレンダリングすることです。

実際、symfony2 のドキュメントには、私を助けるリソースが見つかりません。

4

3 に答える 3

5

最後に、私は自分で解決策を見つけました。同じことをしたい人にとって、解決策は、$formView->get("errors")あなたに配列を与える呼び出しですFormError

于 2011-08-10T08:23:33.423 に答える
3

私はsymfony 2.5を使用していますが、この方法で完璧に機能しました。

マイコントローラー

$error = new FormError(ErrorMessages::USER_NOT_AUTHENTICATED);
$form->addError($error);

私の見解

{% for error in form.vars.errors %}
  <div class="alert alert-danger" role="alert">
    {{ error.messageTemplate|trans(error.messageParameters, 'validators')~'' }}
  </div>
{% endfor %}

これが誰かの時間を節約することを願っています。

于 2014-10-08T08:57:27.850 に答える
2

symfony 2.3 では、すべてのアクセサー メソッドが削除され、パフォーマンスが向上するパブリック プロパティが優先されます。

$formView->get("errors");

今でしょ:

$formView->vars["errors"];

詳細については、 UPGRADE-2.1.mdにアクセスし、セクション「非推奨」を参照してください。

于 2013-07-11T02:18:43.517 に答える