質問 > その他 > ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sogatat |
投稿日時: 2024/4/15 0:29
対応状況: −−−
|
半人前 登録日: 2024/4/14 居住地: 投稿: 22 |
ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい [システム情報]
ゲスト購入時にご注文手続き画面のお届け日とお届け時間と 同じ見た目の出発日と出発時間を追加したいと思っています。 最近eccubeの勉強をはじめまして、普通のテキストフィールドで あればShippingエンティティにフィールドを定義し、DBに反映し、 テンプレートに記載することでDBにカスタムフィールドを保存でき るようになったところです。 shipping_delivery_date, shipping_delivery_timeを参考に、 出発日、出発時間用の新規フィールドdeparture_date, departure_timeをDB上のフィールド作るところまではできそう なのですが、テンプレート側ではお届け時間はDeliveryTimeという エンティティになっていますが、DBからこのエンティティへの 繋がりが理解しかねています。 以下のようなコードになっています。 app/template/default/Shopping/index.twig
これをお届け日としてコピーしてフォームに追加したいのですが、 そもそもDeliveryTimeエンティティがどこで読み込まれてtwigテン プレート上で使用されているのか理解できません。 「お届け時間」を表すDeliveryTimeエンティティは、追加したい 「出発時間」にも流用できるのでしょうか。 また別の問題になるのですが、コードをコピーして「出発日」と 「出発時間」をフォームに追加しようとしているのですが、そもそ も出発時間はセレクトボックスにすらならない状態です。 どのあたりのコードを参考にすれば実装できるか、アドバイスなど いただけないでしょうか。 よろしくお願いいたします。 |
h_tanaka |
投稿日時: 2024/4/15 9:36
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい form.Shippings[idx].DeliveryTime
という form の定義なので、まずは Shippings フォームが定義されている場所を grep検索して確認します。 src/Eccube/Form/Type/Shopping/OrderType.php
次に ShippingType を確認します。 ここで DeliveryTime が定義されています。 src/Eccube/Form/Type/Shopping/ShippingType.php
ここで Entity クラスを読んでいることが確認できます。 src/Eccube/Entity/DeliveryTime.php このあたりを参考に Entity を新規作成して、 ShippingType に定義すればプルダウンが作れると思います。
|
sogatat |
投稿日時: 2024/4/15 11:07
対応状況: −−−
|
半人前 登録日: 2024/4/14 居住地: 投稿: 22 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい h_tanaka様
ご返信いただきましてありがとうございます。 紐付いている部分を教えていただき全体像が見えてまいりました。 > このあたりを参考に Entity を新規作成して、 ShippingType に定義すればプルダウンが作れると思います。 この部分を見て、もしかしたらセレクトボックスの値が決め打ちでいい場合は、テーブルを新規に作ったりしなくてもchoicesあたりを変更できたらいけそうな気がしてきました。 |
h_tanaka |
投稿日時: 2024/4/15 11:18
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい そうですね、固定値で実装するのもありですが、受注メールや受注登録ページへの実装を考えると Entity を作成したほうが後々の拡張がしやすいです。
|
sogatat |
投稿日時: 2024/4/15 11:53
対応状況: −−−
|
半人前 登録日: 2024/4/14 居住地: 投稿: 22 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい 何度も教えていただいてありがとうございます。
そうなると今後のアプローチとしては、まずは追加したい項目が出発日と出発時間のセットになるので、お届け日お届け時間を参考にDBに以下のフィールドを新たに追加します。 app/Customize/Entity/ShippingTrait.phpを作成して以下を追加 ```` shipping.departure_date shipping.departure_time ``` src/Eccube/Entity/DeliveryTime.phpを参考に、DepartureTimeエンティティを作成する。 上位のDepartureエンティティも作成する?? これらをsrc/Eccube/Form/Type/Shopping/ShippingType.phpでフォームに組み込む。 とこういった流れがオススメしていただいている内容だと思っています。 |
h_tanaka |
投稿日時: 2024/4/15 12:05
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい はい、おおよそ問題ないかと思います。
|
sogatat |
投稿日時: 2024/4/15 14:25
対応状況: −−−
|
半人前 登録日: 2024/4/14 居住地: 投稿: 22 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい 何度もありがとうございます。Entity追加を検討したのですがテーブルも追加が必要そうで、Entityも親子関係が必要そうでなかなかに時間がかかりそうに思っています。
そこで一旦、エンティティを使わないで、固定値にしてお客様に見せる方向で今週は進めたいと思っています。 そこで再度申し訳ないのですが、以下についてアドバイスいたあけないでしょうか。 やろうとしていること: 問題の切り分けのために「出発時間」のみフォームに追加してみる。これはエントリーを使わず固定値にする(0-23)。 出発時間(text)のフィールドをshippingテーブルに追加するEntity app/Customize/Entity/ShippingTrait.php
お届け日、お届け時間の下に出発時間を追加 app/template/default/Shopping/index.twig
しかしこの場合、フォームにはセレクトボックスが表示されず、テキスト入力になってしまいます。 'placeholder' => 'common.select__unspecified', は効いていないようですが、どこがおかしいそうかアドバイスいただけないでしょうか。 |
h_tanaka |
投稿日時: 2024/4/15 14:30
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい ChoiceType のパラメーターに次の指定が必要です。
|
sogatat |
投稿日時: 2024/4/15 14:50
対応状況: −−−
|
半人前 登録日: 2024/4/14 居住地: 投稿: 22 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい 追加してみたのですが、セレクトボックスにはならないようです。
|
h_tanaka |
投稿日時: 2024/4/15 14:59
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: ご注文手続き画面のお届け日とお届け時間と同じ見た目の出発日と出発時間を追加したい うーん、他におかしなところはなさそうに見えますが、、
<label> タグを1つ上の階層に移してみてもらえますか。
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |