質問 > その他 > renderView()実行時に、Mail/xxxx.twigが定義されていないというエラーが出てしまう。 |
その他
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
mommy |
投稿日時: 2017/9/15 11:29
対応状況: 解決済
|
新米 登録日: 2017/9/4 居住地: 埼玉県 投稿: 8 |
renderView()実行時に、Mail/xxxx.twigが定義されていないというエラーが出てしまう。 【 作業環境 】
[EC-CUBE] VERSION 3.0.15:新規インストール [OS] Windows10 PHP version : 7.1.8 mariaDB version : 10.1.26 apache version : 2.4.27 【 作成したソースと出ているエラー 】 管理画面>商品管理>商品マスター>個別の商品を選択後、在庫を編集したときに実行される src\Eccube\Controller\Admin\Product\ProductController.php内の、edit() 関数内で、 メールを送信したいと思い、 src\Eccube\Service\MailService.php 内にて以下の関数を定義しました。 ソースコード記述開始>>> /** * restock mail conplete [再入荷通知完了メール] * */ public function sendAdminRestockCompleteMail($to_email,$p_name) { log_info('再入荷通知完了メール送信開始'); $body = $this->app->renderView('Mail/rescomp_mail.twig', array( 'p_name' => $p_name, )); // 問い合わせ者にメール送信 $message = \Swift_Message::newInstance() ->setSubject('再入荷のお知らせです。') ->setFrom('') ->setTo($to_email) ->setBcc('') ->setReplyTo('') ->setReturnPath('') ->setBody($body); $event = new EventArgs( array( 'message' => $message, ), null ); $this->app['eccube.event.dispatcher']->dispatch(EccubeEvents::MAIL_RESTOCK_COMPLETE, $event); $count = $this->app->mail($message); log_info('再入荷通知メール送信完了', array('count' => $count)); return $count; } <<<ソースコード記述終了 上記のMailService.phpで定義した関数を、 src\Eccube\Controller\Admin\Product\ProductController.php内の、edit() 関数内で、下記のように使用しました。 ソースコード開始(※367行目付近の$app['orm.em']->persist($ProductClass);の下に追記) >>> // 単一規格商品用:再入荷通知メール機能追加 if($ProductStock->getStock() === "0"){ if( $ProductClass->getStock() > 0 ){ $my_product_class_id = $ProductClass->getId(); $my_product_id = $Product->getId(); $repoo = $app['plugin.restock5.repository.restock5']->findBy(array('product_id' => $my_product_id)); $my_foreach_counter = 0; foreach( $repoo as $my_val ){ $send_product_name[] = $my_val['product_name']; $send_email_address[] = $my_val['email']; $my_foreach_counter++; } $my_i = 0; for($my_i = 0;$my_i < $my_foreach_counter ; $my_i++){ // 再入荷通知メールの送信 $evalue = $send_email_address[$my_i]; $nvalue = $send_product_name[$my_i]; $app['eccube.service.mail']->sendAdminRestockCompleteMail($evalue,$nvalue); } // 通知メール送信処理 ★この関数の中のrenderView で挙動がおかしくなります。 $app['eccube.service.mail']->sendAdminRestockCompleteMail($p_email,$p_name); } } // 在庫情報を作成 ... } <<<ソースコード終了 すると、sendRestockCompleteMail関数が実行されて、その関数内のrenderView実行時の後に、下記のようなエラーが出てしまいました。 エラー内容記述開始>>> Twig_Error_Loader in Chain.php line 129: Template "Mail/rescomp_mail.twig" is not defined. <<<エラー内容記述終了 【 備考 】 ※renderView() の第一引数で指定しているテンプレートファイルはちゃんと C:\xampp\htdocs\eccube\src\Eccube\Resource\template\default\Mail\rescomp_mail.twig と存在しています。(自分で作成したメール用のテンプレートファイルになります。) ※イベント定数?も定義してあります。(MAIL_RESTOCK_COMPLETE) 【 解決したいこと 】 MailService.php にて定義した、sendAdminRestockCompleteMail()関数内の renderView('Mail/rescomp_mail.twig', array(... を実行した時に、'Mail/recomp_mail.twig' が定義されていないとされてしまうエラーを取り除きたいです。どのようにすればよいでしょうか、どなたかご教授いただければ幸いです。 |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» renderView()実行時に、Mail/xxxx.twigが定義されていないというエラーが出てしまう。 | mommy | 2017/9/15 11:29 |
Re: renderView()実行時に、Mail/xxxx.twigが定義されていないというエラーが出てしまう。 | 468 | 2017/9/15 14:25 |
Re: renderView()実行時に、Mail/xxxx.twigが定義されていないというエラーが出てしまう。 | mommy | 2017/9/15 15:56 |