CakePHP如何将Model中的错误数据传回Controller

时间:2011-09-22 16:25:34

标签: php model-view-controller cakephp

在一些只记录错误的特殊情况下,我想将一个错误数组或一个自定义错误字符串从Model传递给调用Controller,以便在电子邮件中将该数据发送给我。

我想过只是从模特本身发送一封电子邮件,但我已经读到了某个地方,它激怒了MVC最佳实践之神。我环顾了CakePHP API并没有找到任何我需要的东西,所以我在这里问我是否错过了任何东西。

编辑:我在beforeSave()方法中做了一些特殊的处理。

谢谢! 杰森

1 个答案:

答案 0 :(得分:3)

哈哈,前进 - in CakePHP 2.0 - 电子邮件课程将是一等公民,而不是组成部分。

因此,我不会担心通过发送(上帝保佑)模特或贝壳或其他有用的地方的电子邮件来激怒MVC神。

你必须跳过几个圈:

// we will need a controller, so lets make one:
App::import('Core', 'Controller');
$controller =& new Controller();
// lets grab the email component
App::import('Component', 'Email');
$email =& new EmailComponent();
// give it the reference to the controller
$email->initialize($controller);
// off we go...
$email->from     = 'Name <noreply@example.com>';
$email->replyTo  = 'noreply@example.com';
$email->sendAs   = $format;
$email->to       = $destination;
$email->subject  = $subject;
// oh, this is why we needed the controller
$email->template = $template;
$controller->set(compact('items', 'subject'));
// done.
$sent = $email->send();