플래시 메시지를 렌더링CakeEmail : 내가 넣어 내 컨트롤러에서 : 없음
$email = new CakeEmail(array('log'=>true));
$email->transport('Debug');
를 내보기에
echo $this->Session->flash('email');
그러나 아무것도 인쇄되지 않습니다. 2.0에서 해당 기능 (플래시)이 제거 되었습니까?
플래시 메시지를 렌더링CakeEmail : 내가 넣어 내 컨트롤러에서 : 없음
$email = new CakeEmail(array('log'=>true));
$email->transport('Debug');
를 내보기에
echo $this->Session->flash('email');
그러나 아무것도 인쇄되지 않습니다. 2.0에서 해당 기능 (플래시)이 제거 되었습니까?
은 물론 CakePHP는 2.0 플래시 기능이 있습니다.
//controller
$this->Session->setFlash('email');
//view
echo $this->Session->flash();
// 위 출력됩니다.
<div id="flashMessage" class="message">
'email'.
</div>
케이크 이메일 라이브러리 나 구성 요소 또는 전송 클래스가 세션을 터치하거나 그러한 플래시 컨텐츠를 작성하지 않습니다. 그들은 내가 아는 한 결코하지 않았다. 하지만 이메일 내용을 DebugTransport의 배열로 반환합니다.
그래서 당신은 반환 된 배열을 가져오고 그것을 멀리 기록 할 것 : 그런
$res = $this->Email->send();
$this->Session->setFlash($res ? 'Email sent' : 'Email not sent');
또는 STH를. 당신이보기에 UR 플래시 메시지를 얻고 싶다면 http://book.cakephp.org/2.0/en/core-libraries/components/sessions.html
당신이 먼저 컨트롤러의 행동을 설정해야합니다 : 자세한 내용은 여기를 확인하기위한
Cake 2.x에서 디버그 전송은 세션에서 전자 메일 내용을 설정하지 않습니다. 반환 값 $contents = $email->send();
을 확인하십시오. $ 내용은 헤더와 메시지를 포함하므로 필요에 따라 사용하십시오.
$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();
1.3에 나와 있습니다. 메일을 디버그로 보내면 대신 세션 var에 저장하고 테스트를 위해 서버가 필요하지 않습니다. http://book.cakephp.org/1.3/view/1635/Debugging-Emails 방금 말한대로 2.0 – petervaz
에서 작동하는지 모르겠다. cake2.x의 전자 메일에는 세션에 대한 액세스 권한이 전혀 없습니다. 논리적으로는 그렇게 할 수 없습니다. 반환 된 데이터를 사용하여 이메일을 디버깅하는 새로운 "더 나은"방법을 사용하십시오. – mark
알았어요. 나는 그들이 너를 위해 "나는 결코 알지 못했던"것에 대해 예언하고 있었는데, 어느 시점에서 그러했듯이, 나는 너가 단지 2.x에 대해서 말하는 것을 이해한다. – petervaz