【EC-CUBEエラー】Cannot check if an unsubmitted form is valid. Call Form::isSubmitted() before Form::isValid().

私が提供しているEC-CUBEの「質問によるカテゴリ絞り込みプラグイン」を4.1系にアップデートしたのですが、
その際、以下のようなエラーが発生しました。

Cannot check if an unsubmitted form is valid. Call Form::isSubmitted() before Form::isValid().

調べてみると、これはEC-CUBEが4.1系になり、Symfonyが3系から4系になったことで発生したエラーのようです。
フォームのバリデーションをする時に、Form::isValid()を使うのですが、ちゃんとフォームからsubmitされているかもチェックしないといけなくなりました。
セキュリティのことを考えると当たり前なのですが、私のプラグインで1箇所チェックできていないところがあったので、以下のように修正しました。

if ($form->isSubmitted() && $form->isValid()) {
  // do something
}

無事エラーが解消し、EC-CUBE4.1系にアップデートすることができるようになりました。

よろしければプラグインご利用ください。
質問によるカテゴリ絞り込みプラグイン

ABOUTこの記事をかいた人

フリーランスとして働く、フルスタックエンジニア 初崎 匠のサイト。仕事のことから趣味のアニメーション制作、英語学習など、様々なことを通じて、少しでも多くの人が幸せになれるような価値を提供できるよう挑戦し続けます。