投稿者 |
スレッド |
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: 会員登録項目のカナ変換
|
|
|
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系へのバージョンアップ実績豊富
|
|
|