引言
#電子郵件從其誕生以來就大大地提升了人們的效率,傳統的綠色的郵箱那種送信方式,已經被傳輸在光纜上的一束束通訊訊息取代。 電子郵件同時帶來了垃圾訊息的侵擾,隨著國內社交類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 : 發送方姓名
{!! Form::open(['route' => 'contact.store']) !!}<p class="form-group"> {!! Form::label('name', 'Your Name') !!} {!! Form::text('name', null, ['class' => 'form-control']) !!}</p><p class="form-group"> {!! Form::label('email', 'E-mail Address') !!} {!! Form::text('email', null, ['class' => 'form-control']) !!}</p><p class="form-group"> {!! Form::textarea('msg', null, ['class' => 'form-control']) !!}</p>{!! Form::submit('Submit', ['class' => 'btn btn-info']) !!}{!! Form::close() !!}
注意表單是包裹在
open之間的。
驗證資料
表單建立之後,我們要寫接收表單資料的方法,在接收處理之前,一定要對資料的有效性進行驗證。 還記得我們前面講的內容嗎,使用 FormRequest 物件來驗證表單欄位。 在命令列建立表單驗證器:
php artisan make:request ContactFormRequest
為了簡化邏輯起見,我們要多所有呼叫該驗證器的程式碼,無論任何權限都要強制驗證。修改
authorize方法:
public function authorize(){ return true;}
然後定義驗證規則,內建的規則就夠了:
public function rules(){ return [ 'name' => 'required', 'email' => 'required|email', 'msg' => 'required' ];}
##組合起來
有了表單提交,有了驗證器,我們接著要處理這些數據,並寫入資料庫。在控制器ContactController 的 store 方法內寫入以下程式碼。
在頭部引入驗證器:use App\Http\Requests\ContactFormRequest;使用依賴注入方式呼叫:
public function store(ContactFormRequest $request){ $contact = []; $contact['name'] = $request->get('name'); $contact['email'] = $request->get('email'); $contact['msg'] = $request->get('msg'); // 邮件发送逻辑代码 return redirect()->route('contact.create');}
寫在最後
發送郵件是一件作業系統與應用程式綜合起來的事情,上面第三節中郵件發送的邏輯程式碼,我們在下一篇文章給出。 本文雖小,卻講述了從表單到驗證再到資料互動的方方面面,從中可對laravel處理流程有所了解。
以上是教你用Laravel發一封「漂洋過海」的電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!