1

CakePhp 2.0では、CakeEmailを使用すると、新しいコンポーネントがフラッシュメッセージを出力しないようです。

$email = new CakeEmail(array('log'=>true));
$email->transport('Debug');

そして私の見解では

 echo $this->Session->flash('email');

しかし、何も印刷されません。その機能(フラッシュ)は2.0で削除されましたか?

4

4 に答える 4

2

ケーキの電子メール ライブラリ、コンポーネント、またはトランスポート クラスのいずれも、セッションに触れたり、そのようなフラッシュ コンテンツを作成したりしません。私が知っている限り、彼らは決してしませんでした。ただし、電子メールの内容を DebugTransport の配列として返します。

したがって、返された配列を取得してログに記録する必要があります。

$res = $this->Email->send();
$this->Session->setFlash($res ? 'Email sent' : 'Email not sent');

またはそのようなもの。

于 2012-09-24T10:05:50.900 に答える
1

もちろん、詳細については、cakephp 2.0 にフラッシュ機能があります。ここで確認してください

ビューでウルフラッシュメッセージを取得したい場合は、最初にコントローラーアクションで設定する必要があります。

//controller
$this->Session->setFlash('email');

//view
echo $this->Session->flash();

// 上記が出力されます。

<div id="flashMessage" class="message">
'email'.
</div>
于 2012-09-24T13:06:18.910 に答える
0
$response = $Email->send();

$response['headers']; // headers as string
$response['message']; // message body with attachments

$this->Session->setFlash($response['headers'].$response['message']);

レイアウト ファイルに次のものが含まれていることを確認します。

echo $this->Session->flash();
于 2013-09-28T12:23:41.333 に答える
0

Cake 2.x では、デバッグ トランスポートはセッションでメール コンテンツを設定しません。戻り値を確認するだけ$contents = $email->send();です。$contents にはヘッダーとメッセージが含まれるので、必要に応じて使用してください。

于 2012-09-24T14:08:08.267 に答える