0
我建立了一個發送兩封電子郵件而不是一封的聯繫表。這裏的控制器:爲什麼Laravel發送郵件兩次?
<?php
namespace App\Http\Controllers;
use App\Http\Requests\ContactFormRequest;
use App\Mail\ClientContact;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
{
/**
* It sends a contact request and returns
* the user back to the contact form.
* @param ContactFormRequest $request
* @return mixed
*/
public function send(ContactFormRequest $request)
{
Mail::send(new ClientContact($request->only(['name','email','message'])));
session()->flash('success','Your message was sent successfully!');
return redirect()->back();
}
}
這裏的ClientContact郵件類
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class ClientContact extends Mailable
{
use Queueable, SerializesModels;
/**
* @var
*/
public $message;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($message)
{
$this->message = $message;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->from(config('mail.from.address'))
->markdown('emails.client.contact', ['message' => $this->message]);
}
}
這是我的測試環境,所以我捕捉通過Mailtrap.io傳出郵件和隊列設置爲同步。我已經嘗試刪除Queueable特性,但是這並沒有改變任何事情,因爲它不會排隊。我也嘗試將它放在隊列中,當隊列最後再次處理電子郵件時,獲取兩封已發送的電子郵件。
任何想法?
'公共函數發送(ContactFormRequest $ request)' 是這一個帖子還是得到? –
這是一條後路線。 ('contact-form','ContactController @ send') - > name('contact.form');' – Azeame