バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > $form->isSubmitted() が false になる

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2019/9/4 11:46
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
$form->isSubmitted() が false になる
EC-CUBE 4.0.2

新規作成したLPページに会員情報や注文情報を入力できるようにし、一気に注文内容確認ページに遷移できる機能を作成しています。
1. LP
2. LP注文内容確認
3. LP注文完了

1から2への遷移は問題なくできたのですが、2から3へ遷移するときに $form->isSubmitted() が false になってしまいます。
原因、または原因の調査方法わかりますでしょうか?

LpController.php
    /**
     * 注文確認画面を表示する.
     *
     * @Route("/lp/{url}/confirm", name="lp_confirm", methods={"POST"}, requirements={"url"})
     * @Template("default/lp_confirm.twig")
     *
     * @param Request $request
     * @param string $url
     */
    public function confirm(Request $request, string $url)
    {
        $Lp = $this->lpRepository->findOneBy(array('url' => $url));
        if (!$Lp) {
            $this->addError('front.shopping.system_error');
            return $this->redirectToRoute('lp_error', ['url' => $url]);
        }

        /** @var $Customer \Eccube\Entity\Customer */
        $Customer = $this->getUser() ? $this->getUser() : $this->customerRepository->newCustomer();

        // 販売種別に紐づく配送業者を取得.
        $SaleType = $Lp->getSaleType();
        $SaleTypes[$SaleType->getId()] = $SaleType;
        $Deliveries = $this->deliveryRepository->getDeliveries($SaleTypes);

        /* @var $builder \Symfony\Component\Form\FormBuilderInterface */
        $builder = $this->formFactory->createNamedBuilder(
            '',
            LpType::class,
            null,
            [
                'Customer' => $Customer,
                'Deliveries' => $Deliveries,
                'Payment' => null,
                'allow_extra_fields' => true,
            ]
        );

        $form = $builder->getForm();

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {    // ★ ここは問題ない
            ...注文情報登録処理...
        }

        log_info('[LP注文確認] フォームエラー.', [$url]);
        return $this->redirectToRoute('lp_detail', ['url' => $url]);
    }

    /**
     * 注文処理を行う.
     *
     * 決済プラグインによる決済処理および注文の確定処理を行います.
     *
     * @Route("/lp/{url}/checkout", name="lp_checkout", methods={"POST"}, requirements={"url"})
     * @Template("@tbsFeaturePage/default/lp_confirm.twig")
     *
     * @param Request $request
     * @param string $url
     */
    public function checkout(Request $request, string $url)
    {
        // 受注の存在チェック
        $preOrderId = $this->cartService->getPreOrderId();
        $Order = $this->orderHelper->getPurchaseProcessingOrder($preOrderId);
        if (!$Order) {
            log_info('[LP注文処理] 購入処理中の受注が存在しません.', [$preOrderId]);
            return $this->redirectToRoute('lp_error', ['url' => $url]);
        }

        $Lp = $this->lpRepository->findOneBy(array('url' => $url));
        if (!$Lp) {
            $this->addError('front.shopping.system_error');
            return $this->redirectToRoute('lp_error', ['url' => $url]);
        }

        // 販売種別に紐づく配送業者を取得.
        $SaleType = $Lp->getSaleType();
        $SaleTypes[$SaleType->getId()] = $SaleType;
        $Deliveries = $this->deliveryRepository->getDeliveries($SaleTypes);

        /* @var $builder \Symfony\Component\Form\FormBuilderInterface */
        $builder = $this->formFactory->createNamedBuilder(
            '',
            LpType::class,
            null,
            [
                'Customer' => $Order->getCustomer(),
                'Deliveries' => $Deliveries,
                'Payment' => null,
                'allow_extra_fields' => true,
                // 確認画面から注文処理へ遷移する場合は, エンティティで値を引き回すためフォーム項目の定義をスキップする.
                'skip_add_form' => true,
            ]
        );

        $form = $builder->getForm();

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {    // ★ ここで isSubmitted() が false になる
            ...注文完了処理...
        }
    }


lp_confirm.twig
    <form id="shopping-form" method="post" action="{{ url('feature_checkout', {url : Feature.url }) }}">
        {{ form_widget(form._token) }}
                        <button type="submit" class="ec-blockBtn--action">{{ '注文する'|trans }}</button>
    </form>
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » $form->isSubmitted() が false になる h_tanaka 2019/9/4 11:46
     Re: $form->isSubmitted() が false になる h_tanaka 2019/9/4 14:36

 



ログイン


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

統計情報

総メンバー数は88,295名です
総投稿数は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.