質問 > フロント機能 > 問い合わせフォームのカスタマイズの質問 |
フロント機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
k-naka |
投稿日時: 2020/5/19 23:48
対応状況: −−−
|
新米 登録日: 2020/5/17 居住地: 投稿: 9 |
Re: 問い合わせフォームのカスタマイズの質問 468様
投稿ありがとうございました。 お手数ですが質問です。 TopController.phpにContactController.phpのfunction index()で行われている formの準備、リクエスト受付時の処理(確認画面、完了画面の遷移、メール送信)を組み込む、とありましたので以下のようにやってみたのですが、トップページが表示されなくなります。 <?php /* * This file is part of EC-CUBE * * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved. * * http://www.ec-cube.co.jp/ * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Eccube\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Symfony\Component\Routing\Annotation\Route; class TopController extends AbstractController { protected $mailService; /** * @Route("/", name="homepage") * @Template("index.twig") */ public function index( MailService $mailService) { $this->mailService = $mailService; } public function index(Request $request) { $builder = $this->formFactory->createBuilder(ContactType::class); if ($this->isGranted('ROLE_USER')) { /** @var Customer $user */ $user = $this->getUser(); $builder->setData( [ 'name01' => $user->getName01(), 'name02' => $user->getName02(), 'kana01' => $user->getKana01(), 'kana02' => $user->getKana02(), 'postal_code' => $user->getPostalCode(), 'pref' => $user->getPref(), 'addr01' => $user->getAddr01(), 'addr02' => $user->getAddr02(), 'phone_number' => $user->getPhoneNumber(), 'email' => $user->getEmail(), ] ); } // FRONT_CONTACT_INDEX_INITIALIZE $event = new EventArgs( [ 'builder' => $builder, ], $request ); $this->eventDispatcher->dispatch(EccubeEvents::FRONT_CONTACT_INDEX_INITIALIZE, $event); $form = $builder->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { switch ($request->get('mode')) { case 'confirm': $form = $builder->getForm(); $form->handleRequest($request); return $this->render('Contact/confirm.twig', [ 'form' => $form->createView(), ]); case 'complete': $data = $form->getData(); $event = new EventArgs( [ 'form' => $form, 'data' => $data, ], $request ); $this->eventDispatcher->dispatch(EccubeEvents::FRONT_CONTACT_INDEX_COMPLETE, $event); $data = $event->getArgument('data'); // メール送信 $this->mailService->sendContactMail($data); return $this->redirect($this->generateUrl('contact_complete')); } } return [ 'form' => $form->createView(), ]; } public function complete() { return []; } } 組み込むとは具体的にどのようにしたらよいのでしょうか? お手数ですが、もしお時間ございましたらご教示ください。 宜しくお願い致します。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
問い合わせフォームのカスタマイズの質問 | k-naka | 2020/5/17 15:32 |
Re: 問い合わせフォームのカスタマイズの質問 | 468 | 2020/5/18 8:58 |
» Re: 問い合わせフォームのカスタマイズの質問 | k-naka | 2020/5/19 23:48 |
Re: 問い合わせフォームのカスタマイズの質問 | 468 | 2020/5/20 8:10 |
Re: 問い合わせフォームのカスタマイズの質問 | k-naka | 2020/5/21 2:30 |
Re: 問い合わせフォームのカスタマイズの質問 | 468 | 2020/5/21 9:20 |
Re: 問い合わせフォームのカスタマイズの質問 | k-naka | 2020/5/23 3:13 |