首頁  >  文章  >  php框架  >  教你用Laravel發一封「漂洋過海」的電子郵件

教你用Laravel發一封「漂洋過海」的電子郵件

藏色散人
藏色散人轉載
2020-10-16 14:15:142691瀏覽

引言

#電子郵件從其誕生以來就大大地提升了人們的效率,傳統的綠色的郵箱那種送信方式,已經被傳輸在光纜上的一束束通訊訊息取代。 電子郵件同時帶來了垃圾訊息的侵擾,隨著國內社交類APP的普及,電子郵件就漸漸地趨於專業化。

本期先不講如何寄郵件,我們先準備一個表單,把郵件所需的資料準備好。

建立Form表單

首先使用指令列建立一個restful風格的控制器:

php artisan make:controller ContactController
接著在routes/web.php 路由檔案內註冊資源類別路由位址:

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

我們先實作create方法渲染表單的檢視:

namespace App\Http\Controllers;use Illuminate\Http\Request;
use App\Http\Requests;
class ContactController extends Controller {
    public function create()
    {
        return view('contact.create');
    }

然後再用我們講過的FormBuilder 來建立一個發送電子郵件的表單,主要欄位有

#name : 發送方姓名

    email : 接收者的電子郵件位址
  • msg : 郵件內容
  • 下面是檢視檔案內表單的輸入欄位:
  • {!! Form::open([&#39;route&#39; => &#39;contact.store&#39;]) !!}<p class="form-group">
        {!! Form::label(&#39;name&#39;, &#39;Your Name&#39;) !!}
        {!! Form::text(&#39;name&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}</p><p class="form-group">
        {!! Form::label(&#39;email&#39;, &#39;E-mail Address&#39;) !!}
        {!! Form::text(&#39;email&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}</p><p class="form-group">
        {!! Form::textarea(&#39;msg&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}</p>{!! Form::submit(&#39;Submit&#39;, [&#39;class&#39; => &#39;btn btn-info&#39;]) !!}{!! Form::close() !!}

    注意表單是包裹在

    open
close

之間的。

驗證資料

表單建立之後,我們要寫接收表單資料的方法,在接收處理之前,一定要對資料的有效性進行驗證。 還記得我們前面講的內容嗎,使用 FormRequest 物件來驗證表單欄位。 在命令列建立表單驗證器:

php artisan make:request ContactFormRequest

為了簡化邏輯起見,我們要多所有呼叫該驗證器的程式碼,無論任何權限都要強制驗證。修改

authorize

方法:

public function authorize(){
    return true;}

然後定義驗證規則,內建的規則就夠了:

public function rules(){
    return [
        &#39;name&#39; => &#39;required&#39;,
        &#39;email&#39; => &#39;required|email&#39;,
        &#39;msg&#39; => &#39;required&#39;
    ];}

##組合起來

有了表單提交,有了驗證器,我們接著要處理這些數據,並寫入資料庫。在控制器

ContactControllerstore 方法內寫入以下程式碼。

在頭部引入驗證器:

use App\Http\Requests\ContactFormRequest;
使用依賴注入方式呼叫:
public function store(ContactFormRequest $request){
    $contact = [];
    $contact[&#39;name&#39;] = $request->get(&#39;name&#39;);
    $contact[&#39;email&#39;] = $request->get(&#39;email&#39;);
    $contact[&#39;msg&#39;] = $request->get(&#39;msg&#39;);

    // 邮件发送逻辑代码
    return redirect()->route(&#39;contact.create&#39;);}

寫在最後

發送郵件是一件作業系統與應用程式綜合起來的事情,上面第三節中郵件發送的邏輯程式碼,

我們在下一篇文章給出。 本文雖小,卻講述了從表單到驗證再到資料互動的方方面面,從中可對laravel處理流程有所了解。                            

                 

以上是教你用Laravel發一封「漂洋過海」的電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除