バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > 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

 



ログイン


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

統計情報

総メンバー数は93,700名です
総投稿数は111,076件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2318
5
umebius
2085
6
yuh
1857
7
h_tanaka
1756
8
red
1574
9
mcontact
1466
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
804
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.