教你用Laravel發(fā)一封“漂洋過海”的電子郵件

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

下面由laravel教程欄目給大家介紹用Laravel發(fā)一封“漂洋過海”的電子郵件,希望對需要的朋友有所幫助!

教你用Laravel發(fā)一封“漂洋過海”的電子郵件

引言

電子郵件從其誕生以來就大大地提升了人們的效率,傳統(tǒng)的綠色的郵箱那種送信方式,已經(jīng)被傳輸在光纜上的一束束通訊信息取代。

電子郵件同時(shí)帶來了垃圾信息的侵?jǐn)_,隨著國內(nèi)社交類APP的普及,電子郵箱漸漸地趨于專業(yè)化。

教你用Laravel發(fā)一封“漂洋過海”的電子郵件

本期先不講如何發(fā)郵件,我們先準(zhǔn)備一個(gè)表單,把郵件需要的數(shù)據(jù)準(zhǔn)備好。

創(chuàng)建Form表單

首先使用命令行創(chuàng)建一個(gè)restful風(fēng)格的控制器:

php?artisan?make:controller?ContactController

接著在 routes/web.php 路由文件內(nèi)注冊資源類路由地址:

Route::get('contact',?'ContactController@create')->name('contact.create'); Route::post('contact',?'ContactController@store')->name('contact.store');

我們先實(shí)現(xiàn) create方法渲染表單的視圖:

namespace?AppHttpControllers;use?IlluminateHttpRequest; use?AppHttpRequests; class?ContactController?extends?Controller?{ ????public?function?create() ????{ ????????return?view('contact.create'); ????}

然后用我們講過的 FormBuilder 創(chuàng)建一個(gè)發(fā)電子郵件的表單,主要字段有

  • name : 發(fā)送方姓名

  • email : 接收方的電子郵箱地址

  • msg : 郵件內(nèi)容

下面是視圖文件內(nèi)表單的輸入字段:

{!!?Form::open(['route'?=&gt;?'contact.store'])?!!}<p> ????{!!?Form::label('name',?'Your?Name')?!!} ????{!!?Form::text('name',?null,?['class'?=&gt;?'form-control'])?!!}</p><p> ????{!!?Form::label('email',?'E-mail?Address')?!!} ????{!!?Form::text('email',?null,?['class'?=&gt;?'form-control'])?!!}</p><p> ????{!!?Form::textarea('msg',?null,?['class'?=&gt;?'form-control'])?!!}</p>{!!?Form::submit('Submit',?['class'?=&gt;?'btn?btn-info'])?!!}{!!?Form::close()?!!}

注意表單是包裹在 openclose 之間的。

驗(yàn)證數(shù)據(jù)

表單創(chuàng)建之后,我們要寫接收表單數(shù)據(jù)的方法,在接收處理之前,一定要對數(shù)據(jù)的有效性進(jìn)行驗(yàn)證。

還記得我們前面講的內(nèi)容嗎,使用 FormRequest 對象驗(yàn)證表單字段。

在命令行創(chuàng)建一個(gè)表單驗(yàn)證器:

php?artisan?make:request?ContactFormRequest

為了簡化邏輯起見,我們要多所有調(diào)用該驗(yàn)證器的代碼,無論任何權(quán)限都要強(qiáng)制驗(yàn)證。修改 authorize 方法:

public?function?authorize(){ ????return?true;}

然后定義驗(yàn)證規(guī)則,內(nèi)置的規(guī)則足夠了:

public?function?rules(){ ????return?[ ????????'name'?=&gt;?'required', ????????'email'?=&gt;?'required|email', ????????'msg'?=&gt;?'required' ????];}

組合起來

有了表單提交,有了驗(yàn)證器,我們接著要處理這些數(shù)據(jù),并寫入數(shù)據(jù)庫。在控制器 ContactControllerstore 方法內(nèi)寫入如下代碼。

在頭部引入驗(yàn)證器:

use?AppHttpRequestsContactFormRequest;

使用依賴注入方式調(diào)用:

public?function?store(ContactFormRequest?$request){ ????$contact?=?[]; ????$contact['name']?=?$request-&gt;get('name'); ????$contact['email']?=?$request-&gt;get('email'); ????$contact['msg']?=?$request-&gt;get('msg');  ????//?郵件發(fā)送邏輯代碼 ????return?redirect()-&gt;route('contact.create');}

寫在最后

發(fā)送郵件是一件操作系統(tǒng)與應(yīng)用程序綜合起來的事情,上面第三節(jié)中郵件發(fā)送的邏輯代碼,

我們在下一篇文章給出。

本文雖小,卻講述了從表單到驗(yàn)證再到數(shù)據(jù)交互的方方面面,從中可對laravel處理流程有所了解。? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享