バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 入力チェックのカスタマイズについて

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
detti
投稿日時: 2018/4/18 17:35
対応状況: −−−
新米
登録日: 2018/4/18
居住地:
投稿: 7
入力チェックのカスタマイズについて
入力チェックで、AAAが空白だったら、BBBを必須、
CCCが入力されていたら、DDDも必須、
といったようなチェックを入れたいのですが、
どのようにすればよいのでしょうか?

$builder
->add('name', 'name', array(
'required' => true,
))
->add('kana', 'kana', array(
'required' => true,
))
->add('company_name', 'text', array(
'required' => false,
'constraints' => array(
new Assert\Length(array(
'max' => $this->config['stext_len'],
)),
),
))

上記のあたりに何らかの処理を入れるのだと思いますが、
よくわからない状態です・・。

よろしくお願いいたします。


環境
CentOS6
Apache2.2
PHP5.6
EC-CUBE3.0.15

minori
投稿日時: 2018/4/19 18:53
対応状況: −−−
常連
登録日: 2017/10/12
居住地:
投稿: 40
Re: 入力チェックのカスタマイズについて
Callbackバリデーションを利用してみてはいかがでしょうか。

本体で利用しているソースがありますので記載します。

Eccube/Form/Type/AddCartType.php 133行目
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setRequired('product');
    $resolver->setDefaults(array(
        'id_add_product_id' => true,
        'constraints' => array(
            new Assert\Callback(array($this, 'validate')),
        ),
    ));
}

フォーム全体に制約を追加するイメージです。
Callbackの引数に指定した'validate'というのが
呼び出すメソッドの名前になりますので、
validateメソッドを作成しその中に処理を書きます。

たとえばAAAが空白だったらBBBを必須にする場合、
以下のようにします。
public function validate($data, ExecutionContext $context) {
    if (is_null($data['AAA']) {
        $context->validateValue($data['BBB'], array(
            new Assert\NotBlank(),
        ), 'BBB');
}
detti
投稿日時: 2018/4/19 22:41
対応状況: 解決済
新米
登録日: 2018/4/18
居住地:
投稿: 7
Re: 入力チェックのカスタマイズについて
ありがとうございます。

教えて頂いた内容をもとに色々と頑張ってみたいと思います。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,859名です
総投稿数は109,996件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1294
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.