バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > EC-CUBE4で新規会員登録の性別を初期状態で男性を選択した状態にしたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuyu2000
投稿日時: 2020/3/6 11:58
対応状況: 解決済
半人前
登録日: 2020/3/6
居住地:
投稿: 22
EC-CUBE4で新規会員登録の性別を初期状態で男性を選択した状態にしたい
EC-CUBE4で新規会員登録の性別のラジオボタンを初期状態で男性を選択した状態にしたいのですが、その方法がわかりません。

恐らくEntryTypeのbuildFormメソッドで
以下のような感じでdataに初期状態で選択するSexクラスのオブジェクトを設定すればよいのではないかと考えているのですが
symfony初心者のため知識不足でその具体的な方法がわかりません。

->add('sex', SexType::class, [
    'required' => false,
    'data' => <Sexクラスのオブジェクト>,
])


仮にChoiceTypeでラジオボタンを実装した場合は
以下のような形で実現できるとは思うのですが、
これがマスタデータのクラスの場合はどのようにすれば解決するのでしょうか?

->add('sex', ChoiceType::class, [
    'required' => false,
    'choices' => [
        '男性' => 1,
        '女性' => 2,
    ],
    'data' => 1,
])


初歩的な質問で申し訳ありませんがご教示いただけると助かります。
kss
投稿日時: 2020/3/7 21:29
対応状況: −−−
半人前
登録日: 2020/2/12
居住地:
投稿: 18
Re: EC-CUBE4で新規会員登録の性別を初期状態で男性を選択した状態にしたい
管理画面 > コンテンツ管理 > JavaScript管理 で以下のコードを追記でも可能です。

$(function() {
    // 新規会員登録ページ
    if($('body')[0].id == 'page_entry') {
        // 性別ラジオボタンの男性をON
        $('#entry_sex_1')[0].checked = true;
    }
});

kss
投稿日時: 2020/3/7 21:49
対応状況: −−−
半人前
登録日: 2020/2/12
居住地:
投稿: 18
Re: EC-CUBE4で新規会員登録の性別を初期状態で男性を選択した状態にしたい
すみません、先ほどのコードだと新規会員登録ページで女性を選んだ状態で確認ページへ進んだあと、再び新規会員登録ページへ戻ると男性が選択された状態になってしまうので、こちらのほうがいいかもしれません。
$(function() {
    // 新規会員登録ページ
    if($('body')[0].id == 'page_entry') {
        // 性別ラジオボタンのどちらにもチェックが入っていなかったら男性をON
        if($('#entry_sex_1')[0].checked == false && $('#entry_sex_2')[0].checked == false) {
            $('#entry_sex_1')[0].checked = true;
        }
    }
});

umebius
投稿日時: 2020/3/8 0:16
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: EC-CUBE4で新規会員登録の性別を初期状態で男性を選択した状態にしたい
EntryTypeでdataを設定する方法は、通常問題ないのですが

EntryTypeがマイページの会員編集でも使用されているため、ここにdataを設定してしまうとマイページの会員編集画面を開いた時に、常に男性で表示されてしまうはずです。

おそらく一番簡単な方法は
src/Eccube/Controller/EntryController.phpで
会員オブジェクトを最初に生成している
$Customer = $this->customerRepository->newCustomer();の直後に
下記のコードを入れることかと思います。

$Customer->setSex($this->entityManager->getRepository('Eccube\Entity\Master\Sex')->find(1));


(通常はコンストラクタでSexRepositoryを代入しますが、説明を簡略化するためentityManagerを使用しています)


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

yuyu2000
投稿日時: 2020/3/9 10:19
対応状況: 解決済
半人前
登録日: 2020/3/6
居住地:
投稿: 22
Re: EC-CUBE4で新規会員登録の性別を初期状態で男性を選択した状態にしたい
kss様 umebius様 ご回答いただきありがとうございました。

提示していただいたいずれの方法でも問題を解決することができましたが、
今回はPHPでの解決を目標としていたので
umebius様の提案内容で実装しました。

改めてお忙しいところご回答いただきありがとうございました。
大変助かりました。。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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
1291
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.