2017-02-27 10 views
0

私はCakephp 3.4にアップグレードしてコードの移行を行っています。メール機能を次のように変更しました。Cakephp 3.4 - 電子メールsetTemplate()が動作していないようです

$email->setTemplate('welcome', 'registration') 
     ->setSubject($subject) 
     ->setEmailFormat('html') 
     ->setTo($toEmail) 
     ->setFrom($fromEmail) 
     ->send(); 

メールはテンプレートなしで送信されています。しかし、私が

に戻した場合、
$email->template('welcome', 'registration') 

メールが再度テンプレートに送信されます。 setTemplate()関数は私のために働いていないようです。誰でも私が逃しているものを理解するのを手伝ってもらえますか?

編集: htmlファイルが のsrc /テンプレート/メール/ HTML/welcome.ctp に配置され、レイアウトが のsrc /テンプレート/レイアウト/メール/ HTML/registration.ctp

に位置しています
+0

は正しくあるテンプレートですか?それはどこにある ? –

+0

'setTemplate()'メソッドは2番目の引数を取らず、レイアウトは 'setLayout()'で設定されます。 – ndm

+0

お返事ありがとうございました。 @ndm:あなたの提案に従ってsetLayout()を使ってレイアウトを設定しようとしましたが、それは動作しています。しかし、ドキュメントの[Sending Templated Emails](https://book.cakephp.org/3.0/en/core-libraries/email.html#sending-templated-emails)セクションでは、 '$ email->レイアウトを使用するためのsetTemplate( 'welcome'、 'fancy')上記のフォーマットを使用して、アプリケーションから電子メールのレイアウトを設定しました。私は全体の変更を行う前にこれを確認したいと思います。ありがとう – SS86

答えて

2

は、すでに述べたようにEmail::setTemplate()はない、テンプレートやレイアウトを設定するために使用することができ、非推奨Email::template()方法とは異なり、コメントで述べました2番目の引数を取らず、テンプレートのみを設定します。

新たに導入された設定メソッドでは、レイアウトは別のEmail::setLayout()メソッドで設定されます。テンプレート電子メールを送信するためのCookbookの例が正しくなく、修正されました。また

参照

-1

///メール形式HTML

$メール:>代わりにsetTemplate( '歓迎'、 '登録') - > setEmailFormat( 'HTML') - > setTo('[email protected] ') - > setFrom('[email protected] ' ) - > send();

これは、次のテンプレートファイルを使用します。

のsrc /テンプレート/メール/ HTML/welcome.ctp のsrc /テンプレート/レイアウト/メール/ HTML/registration.ctp

///メール形式TEXT

$メール:>代わりにsetTemplate( '歓迎'、 '登録') - > setEmailForm ( 'text') - > setTo('[email protected] ') - > setFrom('[email protected]') - > send();

のsrc /テンプレート/メール/テキスト/ welcome.ctp のsrc /テンプレート/レイアウト/メール/テキスト/ registration.ctp

これは、次のテンプレートファイルを使用します

///メール形式の両方

$メール:>代わりにsetTemplate( '歓迎'、 '登録') - > setEmailForm ['both'] - > setTo('[email protected] ') - > setFrom('[email protected]') - > send();

これは、次のテンプレートファイルを使用します。

のsrc /テンプレート/メール/テキスト/ welcome.ctp のsrc /テンプレート/レイアウト/メール/テキスト/ registration.ctp のsrc /テンプレート/ Email/html/welcome。CTP のsrc /テンプレート/レイアウト/メール/ HTML/registration.ctp

関連する問題