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