質問 > フロント機能 > 注文手続きに入力項目追加したが注文完了でNULLになる |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
akadota |
投稿日時: 2020/10/9 11:13
対応状況: 開発中
|
半人前 登録日: 2020/8/11 居住地: 投稿: 24 |
注文手続きに入力項目追加したが注文完了でNULLになる 注文手続き画面に入力項目を追加したのですが、注文完了でカラムがNULLになります。
1)下記のエンティティーを追加しました。 /home/kurakagroup/diamond-pizza.com/public_html/ec-test/app/Customize/Entity/OrderTrait.php 【OrderTrait.php】 <?php namespace Customize\Entity; use Doctrine\ORM\Mapping as ORM; use Eccube\Annotation\EntityExtension; /** * @EntityExtension("Eccube\Entity\Order") */ trait OrderTrait { /** * @var string|null * @ORM\Column(type="string", length=14, nullable=true) * @Eccube\Annotation\FormAppend( * auto_render=false, * type="\Symfony\Component\Form\Extension\Core\Type\TextType", * options={ * "required": false, * "label": "受付担当者", * "attr": {"placeholder": "例:山田太郎"} * }) */ private $staff_name; /** * @return string|null */ public function getStaffName() { return $this->staff_name; } /** * @param string|null $staff_name * @return OrderTrait */ public function setStaffName($staff_name) { $this->staff_name = $staff_name; return $this; } } 2)コマンドでProxyクラスの生成と、データベースへのカラム追加を行いました。 $ php bin/console eccube:generate:proxies $ php bin/console cache:clear --no-warmup $ php bin/console eccube:schema:update --force --dump-sql 3)注文手続き画面に項目追加しました app/template/default/Shopping/index.twig <div class="ec-orderStaff"> <div class="ec-rectHeading"> <h2>{{ form_label(form.staff_name,'受付担当者')}}</h2> </div> <div class="ec-input">{{ form_widget(form.staff_name, {'attr': {'placeholder': '山田太郎'|trans, 'rows': '1'}}) }}{{ form_errors(form.staff_name) }}</div> </div> 4)同様に注文確認画面と完了画面にも項目追加し、試したのですが、完了画面でデータが消えます。dtb_orderテーブルのstaff_nameカラムにも注文確認までは無事登録されているのですが、注文完了と同時にNULLになります。 5)/src/Eccube/Controller/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'); } //データチェック1(データあり) //var_dump($Order->getStaffName());exit; // フォームの生成. $form = $this->createForm(OrderType::class, $Order, [ // 確認画面から注文処理へ遷移する場合は, Orderエンティティで値を引き回すためフォーム項目の定義をスキップする. 'skip_add_form' => true, ]); //データチェック2(データあり) var_dump($Order->getStaffName());exit; $form->handleRequest($request); //データチェック3(データNULL!!!) var_dump($Order->getStaffName());exit; if ($form->isSubmitted() && $form->isValid()) { log_info('[注文処理] 注文処理を開始します.', [$Order->getId()]); いまいち仕組みがわからず、どこをどう直したら良いかわかりません。 ご教授いただけないでしょうか? |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» 注文手続きに入力項目追加したが注文完了でNULLになる | akadota | 2020/10/9 11:13 |
Re: 注文手続きに入力項目追加したが注文完了でNULLになる | umebius | 2020/10/9 12:07 |
Re: 注文手続きに入力項目追加したが注文完了でNULLになる | akadota | 2020/10/9 14:09 |
Re: 注文手続きに入力項目追加したが注文完了でNULLになる | umebius | 2020/10/9 14:14 |
Re: 注文手続きに入力項目追加したが注文完了でNULLになる | akadota | 2020/10/9 16:05 |
Re: 注文手続きに入力項目追加したが注文完了でNULLになる | akadota | 2020/10/10 14:42 |