バージョン選択

フォーラム

メニュー

オンライン状況

46 人のユーザが現在オンラインです。 (35 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 46
もっと...

サイト内検索

質問 > フロント機能 > 条件付きバリデーション

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2019/4/4 15:23
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1649
条件付きバリデーション
EC-CUBE 4.0.2

ラジオボタンに「0」「1」という値を持たせ、「1」が選択されたときにテキストフィールドの入力を必須にしたいです。

調べながらいろいろと試していますが、うまくいきません。
どうすれば実現できるでしょうか?

app/Customize/Form/Type/Front/SenderType.php
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('slip_sender_choice', ChoiceType::class, [
                'choices'  => [
                    '代表者住所と同じ' => 0,
                    'その他' => 1,
                ],
                'required' => true,
                'expanded' => true,
                'constraints' => [
                    new Assert\NotBlank(),
                    new Assert\Callback(array($this, 'validate_slip_sender')),
                ],
            ])
    }

    // 配送伝票の送り主のバリデーション
    public function validate_slip_sender($value, ExecutionContext $context) {
        $form = $context->getRoot();
        $data = $form->getData();

        if ($value == 1) {

            // パターン1
            $context->validateValue($data['slip_sender_phone_number'], array(    // ★ UndefinedMethodException になる
                    new Assert\NotBlank(),
                ), 'slip_sender_phone_number');

            // パターン2
            if (empty($data['slip_sender_phone_number'])) {
                $context->buildViolation('入力してください。')
                    ->atPath('slip_sender_phone_number')    // ★ slip_sender_phone_number ではなく slip_sender_choice に紐づくエラーになってしまう
                    ->addViolation();
            }
        }
    }
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 条件付きバリデーション h_tanaka 2019/4/4 15:23
     Re: 条件付きバリデーション nyorai 2019/4/5 9:51
       Re: 条件付きバリデーション h_tanaka 2019/4/5 17:51
         Re: 条件付きバリデーション umebius 2019/4/6 10:32
           Re: 条件付きバリデーション umebius 2019/4/6 10:36
             Re: 条件付きバリデーション h_tanaka 2019/4/8 14:29

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,094名です
総投稿数は110,033件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1649
8
red
1570
9
mcontact
1297
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.