这开始(可能已经)让我发疯了!关于如何使用内置的 CakePHP CakeEmail 似乎没有太多帮助。
我在这个网站上找到了很多帖子,还有一个你管的视频,这很有帮助,但解释的人不是用英语说话,所以有时很难跟上他。
我有一个视图文件,里面有一个基本表单,它指向我的控制器内部的 send() 函数,但除了错误我什么也没有。
这是我当前的代码:
更新 ::
我得到的错误是,
Undefined index: to [APP/Controller/ContactController.php, line 26]
和
Error: Call to a member function subject() on a non-object
File: /var/www/app/Controller/ContactController.php
Line: 27
我只是不明白,我打电话给CakeEmail对吗?我已经正确复制了代码,但这些是我每次提交 from 时都会遇到的错误。
谢谢格伦。
另一个更新::
我已经删除了之前的代码,我已经让它工作了(有点)
//新建联系人.cpt
echo $this->Form->create(array('controller' => 'contact', 'url' => '/contact/send') );
echo $this->Form->input('ContactForm.to');
echo $this->Form->input('ContactForm.subject');
echo $this->Form->input('ContactForm.message', array('type' => 'textarea') );
echo $this->Form->submit('Email Us', array('class' => 'Button'));
echo $this->Form->end();
//新控制器
public function send() {
if ( !empty($this->request->data) ) {
$email = new CakeEmail();
$email->config('default');
$email->from(array('contact@me.com' => 'ME'))
->to('contact@me.com')
->subject($this->request->data['ContactForm']['subject']);
if ( $email->send($this->request->data['ContactForm']['message']) ) {
$this->Session->setFlash(__('Email Sent...'), 'default', array('class' => 'success') );
}
}
$this->render('/Contact/Contact');
} //End of function send
但现在我想改变布局,我的表格将是
//这就是我想要的->
echo $this->Form->create(array('controller' => 'contact', 'url' => '/contact/send') );
echo $this->Form->input('ContactForm.name');
echo $this->Form->input('ContactForm.email');
echo $this->Form->input('ContactForm.phone');
echo $this->Form->input('ContactForm.subject');
echo $this->Form->input('ContactForm.message', array('type' => 'textarea') );
echo $this->Form->submit('Email Us', array('class' => 'Button'));
echo $this->Form->end();
我需要输入姓名、电子邮件和电话号码,但是当我将其添加到控制器中的 $email 时,我得到的只是这个错误
error: Call to undefined method CakeEmail::name()
//我更改的控制器代码部分
$email->from(array('contact@me.com' => 'Me'))
->to('contact@me.com')
->name($this->request->data['ContactForm']['name']) <-That is the line I added!
->subject($this->request->data['ContactForm']['subject']);
如果这不是正确的方法,我不是来宾,那么我如何更改电子邮件布局以包含我想要的项目列表。我已经(很多次)查看了 CakeEmail 文档,但它不是很清楚,只是没有给出如何从默认值更改的任何工作代码。
谢谢格伦