その他 > その他 > 注文手続き画面に項目追加したい |
その他
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
iwanaga |
投稿日時: 2021/2/12 11:39
対応状況: −−−
|
新米 登録日: 2020/12/17 居住地: 福井 投稿: 5 |
Re: 注文手続き画面に項目追加したい 同事象で、こちらのスレッドにたどりつきました。
解決されないままで止まっているのですが、その後どうでしょうか。 解決方法はないでしょうか。 |
PDanny |
投稿日時: 2019/10/11 23:59
対応状況: −−−
|
新米 登録日: 2019/10/11 居住地: 投稿: 1 |
Re: 注文手続き画面に項目追加したい Today was not my lucky day, but I must say this article has reignited my ecstasy. Dissertation writing services. I am very pleased for finding this blog. Thank you for the information.Cheap dissertation writing service
|
aposto |
投稿日時: 2019/9/25 1:44
対応状況: −−−
|
新米 登録日: 2019/9/11 居住地: 投稿: 2 |
Re: 注文手続き画面に項目追加したい 私もこの現象を再現することが出来ました。
ShoppingController.php内の以下のコード部分でnullが入るようです。 ------------------------------------------- /** * 注文処理を行う. * * 決済プラグインによる決済処理および注文の確定処理を行います. * * @Route("/shopping/checkout", name="shopping_checkout", methods={"POST"}) * @Template("Shopping/confirm.twig") */ public function checkout(Request $request) { // ログイン状態のチェック. if ($this->orderHelper->isLoginRequired()) { log_info('[注文処理] 未ログインもしくはRememberMeログインのため, ログイン画面に遷移します.'); return $this->redirectToRoute('shopping_login'); } // 受注の存在チェック $preOrderId = $this->cartService->getPreOrderId(); $Order = $this->orderHelper->getPurchaseProcessingOrder($preOrderId); if (!$Order) { log_info('[注文処理] 購入処理中の受注が存在しません.', [$preOrderId]); return $this->redirectToRoute('shopping_error'); } // フォームの生成. $form = $this->createForm(OrderType::class, $Order, [ // 確認画面から注文処理へ遷移する場合は, Orderエンティティで値を引き回すためフォーム項目の定義をスキップする. 'skip_add_form' => true, ]); var_dump($form->getViewData()); //☆この部分ではnullはなし $form->handleRequest($request); var_dump($form->getViewData());exit; //☆この部分でnullが代入される ------------------------------------------- 解決方法等はまだわかっていません。 |
ゲスト |
投稿日時: 2019/9/16 20:56
対応状況: −−−
|
Re: 注文手続き画面に項目追加したい
|
|
eccbeginer |
投稿日時: 2019/8/4 6:34
対応状況: −−−
|
半人前 登録日: 2019/5/14 居住地: 投稿: 11 |
Re: 注文手続き画面に項目追加したい 田中様
お世話になっております。 引続き調査していましたところ ご注文手続き画面から確認画面へ遷移するタイミングでは 仮確定段階の受注データとしてDBに値がセットされていました。以下のSQLでreceipt_addressが更新されていました。 UPDATE dtb_order SET order_no = '58', message = 'テスト問合せ', subtotal = '64800', discount = '0', delivery_fee_total = '0', charge = '0', tax = '4800', total = '64800', payment_total = '64800', add_point = '600', use_point = '0', receipt_address = 'テスト宛名', receipt_proviso = 'テス ト但し書き', update_date = '2019-08-03 21:18:00' WHERE id = 58 しかし、この後、注文確認画面から注文完了画面に遷移する際に再度、dtb_orderが更新される際にNULL値で上書きされていました。 UPDATE dtb_order SET subtotal = '64800', discount = '0', delivery_fee_total = '0', charge = '0', tax = '4800', total = '64800', payment_total = '64800', add_point = '600', receipt_address = NULL, receipt_proviso = NULL, update_date = '2019-08-03 21:20:51' WHERE id = 58 このUPDATE文に今回追加した項目を対象として含めるようなコードは追記していないのですが、自動的に追加されてしまっているようです。 確認したところ、EntityおよびShopping\index.twigに追加したことでこのUPDATE文に追加されるようです。 上記UPDATE文でNULL値ではなく、値を設定する方法、 または上記UPDATE文の対象から該当項目を除外する方法は ございませんでしょうか。 どうぞよろしくお願いいたします。 |
h_tanaka |
投稿日時: 2019/7/29 21:42
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: 注文手続き画面に項目追加したい
|
eccbeginer |
投稿日時: 2019/7/26 18:27
対応状況: −−−
|
半人前 登録日: 2019/5/14 居住地: 投稿: 11 |
Re: 注文手続き画面に項目追加したい 田中様
ご回答を頂戴し、ありがとうございます。 Controller や Repositoryは特に何も更新しておりません。 \Customize\EntityにOrderTrait.phpを作成し、 bin/console eccube:generate:proxies コマンドで Proxy クラスを生成し、Entityの拡張を行っており、プラグインの作成を行っていないのですが、画面項目追加のやり方としてそもそも合っておりますでしょうか? また、OrderTrait.phpの内容は以下の内容としております。 お気づきの点などございましたら、ご教示お願いいたします。 namespace Customize\Entity; use Doctrine\ORM\Mapping as ORM; use Eccube\Annotation\EntityExtension; /** * @EntityExtension("Eccube\Entity\Order") */ trait OrderTrait { /** * @ORM\Column(type="string",nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=true, * type="\Symfony\Component\Form\Extension\Core\Type\TextType", * options={ * "required": false, * "label": "領収書宛名" * }) */ public $receipt_address; /** * @ORM\Column(type="string",nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\TextType", * options={ * "required": false, * "label": "領収書但し書き" * }) */ public $receipt_proviso; } どうぞよろしくお願いいたします。 |
h_tanaka |
投稿日時: 2019/7/26 17:31
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: 注文手続き画面に項目追加したい 通常は、Entity, Form, twig で定義してやれば保存までもできるはずです。
プラグインの中身は見ていないのですが、Controller や Repository でなにか特殊な保存処理は行っていないでしょうか?
|
eccbeginer |
投稿日時: 2019/7/26 13:53
対応状況: −−−
|
半人前 登録日: 2019/5/14 居住地: 投稿: 11 |
Re: 注文手続き画面に項目追加したい 田中様
早速のご返信をありがとうございます。 Eccube\Form\Type\Shopping\ShoppingType.phpは 以下のように定義しております。 「←追記」の部分が追記箇所(計7か所)となります。 namespace Eccube\Form\Type; use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextType; ← 追記 use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints as Assert; class ShoppingType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $payments = $options['payments']; $payment = $options['payment']; $message = $options['message']; $receipt_address = $options['receipt_address']; ←追記 $builder ->add('payment', EntityType::class, [ 'class' => 'Eccube\Entity\Payment', 'choice_label' => 'method', 'choices' => $payments, 'data' => $payment, 'expanded' => true, 'constraints' => [ new Assert\NotBlank(), ], ]) ->add('message', TextareaType::class, [ 'required' => false, 'data' => $message, 'constraints' => [ new Assert\Length(['min' => 0, 'max' => 3000]), ], ]) ->add('receipt_address', TextType::class, [ ←追記 'required' => false, ←追記 'data' => $receipt_address ←追記 ]); ←追記 } public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'payments' => [], 'payment' => null, 'message' => null, 'receipt_address' => null ←追記 ]); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'shopping'; } } どうぞよろしくお願い致します。 |
h_tanaka |
投稿日時: 2019/7/26 12:41
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: 注文手続き画面に項目追加したい FormType はどのように定義されていますか?
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |