質問 > フロント機能 > 会員登録時の入力した県によってバリデートをかけたい |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
webtamago |
投稿日時: 2021/2/4 2:06
対応状況: −−−
|
常連 登録日: 2014/5/22 居住地: 投稿: 34 |
会員登録時の入力した県によってバリデートをかけたい ▼テンプレート
[EC-CUBE]4.0.5 [レンタルサーバ]xserver 取得した県のIDによって、配送不可にしたいと考えております。 ※ 該当の県IDだった場合は、エラーメッセージを表示したいです。 この場合にどこでバリデートを行えばいいのかご教授お願いいたします。 src/Eccube/Contoroller/contactcontoroller.php #82 の行で受取 #83の行の $form->isValid() でバリデートを検証しているのでしょうか。 初歩的なご質問で恐縮ですが、何卒ご教授お願いいたします。 |
devbell |
投稿日時: 2021/2/4 3:26
対応状況: −−−
|
半人前 登録日: 2020/4/10 居住地: 投稿: 19 |
Re: 会員登録時の入力した県によってバリデートをかけたい お問合せフォームの事で良いのでしょうか?
配送不可だと、購入フローの事なのかなと思ったのですが、「contactcontoroller」なので、お問合せと思って答えます。 まず、お問合せのフォームは https://github.com/EC-CUBE/ec-cube/blob/4.0/src/Eccube/Form/Type/Front/ContactType.php Eccube/Form/Type/Front/ContactType.phpで制御してます。 お問合せは住所入力は任意なのでまずは必須にするのが良いと思います。 住所(address)の「'required' => false,」を削除すれば必須になると思います。 新規会員登録フォームが参考になります。 https://github.com/EC-CUBE/ec-cube/blob/4.0/src/Eccube/Form/Type/Front/EntryType.php で、エラーですが、EntryType.phpの118行目も参考になり、情報を入力して送信後の入力チェック等ができます。 「$event->getData();」で「ContactType」だと配列で入力された情報が取得できます。 その中に「postal_code」がありますので、ここのPrefオブジェクトのIDをチェックして、エラーを設定すれば、都道府県のセレクトボックスにエラー表示がされます。 $form['address']['pref']->addError(new FormError('エラー文')); use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; も忘れないでください。 こんな感じだと思います。 本体ソースに手を入れるのもいいですが、FormTypeを拡張する方法もあります。 https://doc4.ec-cube.net/customize_formtype 見てみてください。 |
webtamago |
投稿日時: 2021/2/5 19:15
対応状況: 解決済
|
常連 登録日: 2014/5/22 居住地: 投稿: 34 |
Re: 会員登録時の入力した県によってバリデートをかけたい devbell様
ご教授いただき誠にありがとうございました! Form/type までしか調べておりませんでした。 FRONTの中にあったとは。。。。 また、詳しいところまで記述いただき本当に感謝させていただきます! 誠に迅速かつご丁寧な返信ありがとうございました!!!! |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |