Shell中的Cakephp渲染视图不起作用

时间:2013-09-05 10:38:40

标签: php cakephp

创建了一个shell类,EmailShell将呈现给定电子邮件模板的html并将其传递给Mandrill Api服务。

App::uses('View', 'Core');
class EmailShell extends AppShell {
    function startup() {
        parent::startup();
        $useDbConfig = 'default';
    }

    function new_user_created(){
        $html = $this->getEmailTemplateHtml('new_user');
        $post_fields['message'] = array(
            "html" => $html,
            "text" => strip_tags($html),
            "from_email" => "from@example.com",
            "subject" => "subject goes here.",
            "to" => "to@example.com"
        );
        $Mandril = ClassRegistry::init("Mandril");
        $Mandril->sendEmail($post_fields);
    }

    private function getEmailTemplateHtml($template, $layout = 'default', $custom_data = false){
        $v = new View();
        $v->set("data", $custom_data);
        return $v->render('Emails/'.$template, $layout);    
        }
    }

现在执行shell命令

$>蛋糕邮件new_user_created

它正在返回我的错误信息。

* PHP致命错误:在第22行的C:\ wamp \ www \ cakephp_application \ app \ Console \ Command \ EmailShell.php中找不到类“查看”*

如何获取我的电子邮件模板的HTML,以便将其传递给Mandril服务?

1 个答案:

答案 0 :(得分:0)

问题是View位于View文件夹中,没有Core文件夹。

你会想要使用。
App::uses('View', 'View');