加载自定义Yii组件

Kyl*_*Van 7 php swiftmailer yii

我正在尝试使用我创建的自定义类来发送邮件,以便我可以保持控制器文件很薄.我创建了自定义类并将其放在components文件夹中.然后我补充说:

'sendMail' => array(
    'class'=>'application.components.SendMail.',
), 
Run Code Online (Sandbox Code Playgroud)

在我的主配置文件中的主要组件下面.

这应该允许我直接访问类正确吗?我尝试使用:

Yii::app()->SendMail->MailerConfirmation();
Run Code Online (Sandbox Code Playgroud)

和:

Yii:app()->MailerConfirmation();
Run Code Online (Sandbox Code Playgroud)

而我最终得到的只是错误.

谁能告诉我如何包含自定义组件?也许我这样做错了?

ddi*_*hev 12

首先它应该是:

'sendMail' => array(
    'class'=>'application.components.SendMail',
), 
Run Code Online (Sandbox Code Playgroud)

注意最后"SendMail"而不是"SendMail"中没有dot.此外,此配置要求您在protected/components目录中具有php文件SendMail.php,该目录是名为"SendMail"的类,并且此组件扩展了CApplicationComponent.组件ID将使用较低的第一个字母,例如Yii::app()->sendMail,这将返回"SendMail"类的实例.我不知道MailerConfirmation是什么,但如果这是SendMail对象的方法,那么你应该像访问它一样Yii::app()->sendMail->MailerConfirmation()

如果这没有帮助,那么请发布一些代码并发布您获得的错误.