これは私を怒らせ始めています(すでに持っているかもしれません)!組み込みの 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 に電話しましたよね? コードを正しくコピーしましたが、送信元を送信するたびにエラーが発生します。
ありがとうグレン。
別の更新::
以前からコードを削除しましたが、動作するようになりました (一種の)
//新しい連絡先.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 ドキュメントを (何度も) 見てきましたが、あまり明確ではなく、デフォルトから変更する方法の作業コードを提供していません。
ありがとうグレン