這開始(可能已經)讓我發瘋!對於如何使用內置的CakePHP CakeEmail似乎沒有太多幫助。CakeEmail函數,問題和問題
我在這個網站上發現了很多帖子,還有一個you tube vid,這是有幫助的,但是那個解釋的人沒有用英語來形容,所以有時候很難跟隨他。
我有一個視圖文件,裏面有一個基本的窗體,它向我的控制器裏的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吧?我已經複製了代碼,但這些都是我每次提交的錯誤。
謝謝格倫。
另一個更新::
我從以前刪除的代碼,我得到它的工作(在某種程度上)
//新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('[email protected]' => 'ME'))
->to('[email protected]')
->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();
我需要的姓名,電子郵件和電話號碼,但是當我在我的控制器,然後添加到$電子郵件我得到的是這種錯誤
error: Call to undefined method CakeEmail::name()
//控制器代碼段,我改變
$email->from(array('[email protected]' => 'Me'))
->to('[email protected]')
->name($this->request->data['ContactForm']['name']) <-That is the line I added!
->subject($this->request->data['ContactForm']['subject']);
如果這是不正確的做法,這我的客串不中, ñ如何更改電子郵件佈局以包含我想要的項目列表。我已經查閱了CakeEmail文檔(很多次),但它不是很清楚,只是沒有給出任何如何從默認更改的工作代碼。
感謝格倫
雖然你包含了很多代碼,但是你沒有描述到底是什麼不起作用。您是否還嘗試手動發送電子郵件,使用「固定」字符串而不是表單數據? (以縮小問題的原因) – thaJeztah
我不確定如何設置固定數據而不會出現更多的血腥錯誤,但您的權利我沒有說錯誤是什麼,請參閱更新 –