这开始(可能已经)让我发疯!关于如何使用内置的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时都会遇到的错误。
感谢格伦。
另一次更新::
我已经删除了以前的代码,我已经让它工作了(某种程度上)
//新的Contact.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文档,但它不是很清楚,并且没有提供任何有关如何从默认值更改的工作代码。
感谢格伦
答案 0 :(得分:1)
您的代码中有一些简单的错误。
这是错误的
->to($this->request->data['to'])
debug($this->request->data)
查看数组的结构
您有Undefined index: to [APP/Controller/ContactController.php, line 26]
错误,但我在代码中看不到任何引用索引的内容。你是在做这件事还是没有粘贴正确的代码。我怀疑它可能与我提到的$this->request->data
问题相同。