バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 会員登録項目のカナ変換

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
katojunn98
投稿日時: 2020/8/28 15:02
対応状況: 開発中
新米
登録日: 2020/8/28
居住地:
投稿: 10
会員登録項目のカナ変換
ec-cube4にて会員登録の項目追加を行っています。
その際、新規項目のDB登録時に「お名前(カナ)」と同じように「かな」→「カナ」変換をしたいのですがどうすればよいでしょうか。
https://umebius.com/eccube/eccube4-add-new-form-item-customer/
上記サイトをもとに「担当者(カナ)」という項目を追加しました。
balisys
投稿日時: 2020/8/28 15:35
対応状況: −−−
仙人
登録日: 2020/7/5
居住地:
投稿: 397
Re: 会員登録項目のカナ変換
ぱっと見なのであくまで参考までにですが

src/Eccube/Form/Type/Front/EntryType.php 内、
public function buildForm参考に

KanaType.php
ConvertKanaListener.php
上記を利用する必要があるかと推測します。
balisys
投稿日時: 2020/8/28 15:38
対応状況: −−−
仙人
登録日: 2020/7/5
居住地:
投稿: 397
Re: 会員登録項目のカナ変換
追加で
https://doc4.ec-cube.net/customize_formtype
上記参考に、拡張、オーバーライドすれば可能かと思います。
katojunn98
投稿日時: 2020/8/28 17:15
対応状況: −−−
新米
登録日: 2020/8/28
居住地:
投稿: 10
Re: 会員登録項目のカナ変換
回答ありがとうございます。
回答をもとに進めたのですがシステムエラーとなってしまいました...
参考サイトのソースをコピペしてファイル名、クラス名等書き換えています。
public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $options = $builder->get('responsible_party_kana')->getOptions();
        $builder->add('responsible_party_kana', KanaType::class, []);
    }


ログを見ると以下のようなエラーがはかれています。
The child with the name \"responsible_party_kana\" does not exist.","C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\FormBuilder.php",121,"#0 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\app\\Customize\\Form\\Extension\\ResponsiblePartyKana.php(18)...


umebius
投稿日時: 2020/8/29 22:43
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 会員登録項目のカナ変換
$options = $builder->get('responsible_party_kana')->getOptions();
の部分は ケースバイケースなので今回は不要かと思います。

この行を消せばエラーにはならないのではないでしょうか?


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

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

katojunn98
投稿日時: 2020/8/29 23:49
対応状況: −−−
新米
登録日: 2020/8/28
居住地:
投稿: 10
Re: 会員登録項目のカナ変換
回答ありがとうございます。
指摘された箇所を削除したのですが、いまだ下記のエラーが出ています。
[2020-08-29 23:39:38] front.ERROR [3e911dec] [8d0b5aa] [anon.] [Eccube\Log\Logger:log:66] - システムエラーが発生しました。 ["Could not load type \"Customize\\Form\\Extension\\KanaType\": class does not exist.","C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\FormRegistry.php",86,"#0 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\FormFactory.php(74): Symfony\\Component\\Form\\FormRegistry->getType('Customize\\\\Form\\\\...')\n#1 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\FormBuilder.php(98): Symfony\\Component\\Form\\FormFactory->createNamedBuilder('responsible_par...', 'Customize\\\\Form\\\\...', NULL, Array)\n#2 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\FormBuilder.php(252): Symfony\\Component\\Form\\FormBuilder->create('responsible_par...', 'Customize\\\\Form\\\\...', Array)\n#3 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\FormBuilder.php(199): Symfony\\Component\\Form\\FormBuilder->resolveChildren()\n#4 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\src\\Eccube\\Controller\\EntryController.php(141): Symfony\\Component\\Form\\FormBuilder->getForm()\n#5 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\http-kernel\\HttpKernel.php(151): Eccube\\Controller\\EntryController->index(Object(Symfony\\Component\\HttpFoundation\\Request))\n#6 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\http-kernel\\HttpKernel.php(68): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#7 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\http-kernel\\Kernel.php(200): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#8 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\index.php(76): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#9 {main}"] [GET, /eccube/eccube-4.0.4/entry, ::1, http://localhost/eccube/eccube-4.0.4/, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36]


index.twigは以下のようになっていますが誤っていないでしょうか。
<dl>
                            <dt>
                                {{ form_label(form.responsible_party_kana, '担当者(カナ)', { 'label_attr': { 'class': 'ec-label' }}) }}
                            </dt>
                            <dd>
                                <div class="ec-halfInput{{ has_errors(form.responsible_party_kana.responsible_party_furigana01,form.responsible_party_kana.responsible_party_furigana02) ? ' error' }}">
                                    {{ form_widget(form.responsible_party_kana.responsible_party_furigana01) }}
                                    {{ form_widget(form.responsible_party_kana.responsible_party_furigana02) }}
                                    {{ form_errors(form.responsible_party_kana.responsible_party_furigana01) }}
                                    {{ form_errors(form.responsible_party_kana.responsible_party_furigana02) }}
                                </div>
                            </dd>
                        </dl>
umebius
投稿日時: 2020/8/29 23:52
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 会員登録項目のカナ変換
そのエラーの原因は
use Eccube\Form\Type\KanaType;を書いてないからだと思います。

あるいはKanaType::classのところを \Eccube\Form\Type\KanaType::classと書くかですかね。


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

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

katojunn98
投稿日時: 2020/8/30 1:42
対応状況: −−−
新米
登録日: 2020/8/28
居住地:
投稿: 10
Re: 会員登録項目のカナ変換
回答ありがとうございます。

記載を追加してindex.twigを編集したところ、会員登録画面を表示することができたのですが、登録前確認画面へ飛んだ時にシステムエラーとなっています
[2020-08-30 01:36:10] front.ERROR [3e911dec] [d65371b] [anon.] [Eccube\Log\Logger:log:66] - システムエラーが発生しました。 ["Could not determine access type for property \"responsible_party_kana01\" in class \"Eccube\\Entity\\Customer\".","C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\property-access\\PropertyAccessor.php",634,"#0 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\property-access\\PropertyAccessor.php(216): Symfony\\Component\\PropertyAccess\\PropertyAccessor->writeProperty(Array, 'responsible_par...', '\\xE3\\x83\\xA8\\xE3\\x82\\xB3\\xE3\\x83\\xA4\\xE3\\x83\\x9E')\n#1 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\Extension\\Core\\DataMapper\\PropertyPathMapper.php(86): Symfony\\Component\\PropertyAccess\\PropertyAccessor->setValue(Object(Eccube\\Entity\\Customer), Object(Symfony\\Component\\PropertyAccess\\PropertyPath), '\\xE3\\x83\\xA8\\xE3\\x82\\xB3\\xE3\\x83\\xA4\\xE3\\x83\\x9E')\n#2 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\Form.php(626): Symfony\\Component\\Form\\Extension\\Core\\DataMapper\\PropertyPathMapper->mapFormsToData(Object(RecursiveIteratorIterator), Object(Eccube\\Entity\\Customer))\n#3 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\Extension\\HttpFoundation\\HttpFoundationRequestHandler.php(109): Symfony\\Component\\Form\\Form->submit(Array, true)\n#4 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\form\\Form.php(487): Symfony\\Component\\Form\\Extension\\HttpFoundation\\HttpFoundationRequestHandler->handleRequest(Object(Symfony\\Component\\Form\\Form), Object(Symfony\\Component\\HttpFoundation\\Request))\n#5 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\src\\Eccube\\Controller\\EntryController.php(143): Symfony\\Component\\Form\\Form->handleRequest(Object(Symfony\\Component\\HttpFoundation\\Request))\n#6 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\http-kernel\\HttpKernel.php(151): Eccube\\Controller\\EntryController->index(Object(Symfony\\Component\\HttpFoundation\\Request))\n#7 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\http-kernel\\HttpKernel.php(68): Symfony\\Component\\HttpKernel\\HttpKernel->handleRaw(Object(Symfony\\Component\\HttpFoundation\\Request), 1)\n#8 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\vendor\\symfony\\http-kernel\\Kernel.php(200): Symfony\\Component\\HttpKernel\\HttpKernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request), 1, true)\n#9 C:\\xampp\\htdocs\\eccube\\eccube-4.0.4\\index.php(76): Symfony\\Component\\HttpKernel\\Kernel->handle(Object(Symfony\\Component\\HttpFoundation\\Request))\n#10 {main}"] [POST, /eccube/eccube-4.0.4/entry, ::1, http://localhost/eccube/eccube-4.0.4/entry, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36]


confirm.twigは以下のようになっています
<dl>
                            <dt>
                                {{ form_label(form.responsible_party_kana, '担当者(ふり) ', { 'label_attr': { 'class': 'ec-label' }}) }}
                            </dt>
                            <dd>{{ form.responsible_party_kana.responsible_party_kana01.vars.data }}
                                {{ form.responsible_party_kana.responsible_party_kana02.vars.data }}
                                {{ form_widget(form.responsible_party_kana.responsible_party_kana01, { type : 'hidden' }) }}
                                {{ form_widget(form.responsible_party_kana.responsible_party_kana02, { type : 'hidden' }) }}
                            </dd>
                        </dl>


こちらの記載ミスでエラーとなっていました
katojunn98
投稿日時: 2020/8/30 2:07
対応状況: −−−
新米
登録日: 2020/8/28
居住地:
投稿: 10
Re: 会員登録項目のカナ変換
confirm.twigを修正したところ登録確認画面へ遷移できるようになり、DBに登録することができましたが「responsible_party_kana01」「responsible_party_kana02」のカラムには値が入っていませんでした。

他に修正する箇所はあるでしょうか?
umebius
投稿日時: 2020/8/31 15:56
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 会員登録項目のカナ変換
index.twigの
responsible_party_furigana01はresponsible_party_kana01, responsible_party_furigana02はresponsible_party_kana02だと思いますが、そちらはもう直されていますか?

直していて登録されないのであれば、カラムの追加のためEntityに何か記述していると思いますが、その部分の内容を見せていただけますでしょうか。


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

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

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.