email : 接收方的電子郵箱地址
msg : 郵件內(nèi)容
下面是視圖文件內(nèi)表單的輸入字段:
{!! Form::open([\\\’route\\\’ => \\\’contact.store\\\’]) !!}
<div class=form-group>
{!! Form::label(\\\’name\\\’, \\\’Your Name\\\’) !!}
{!! Form::text(\\\’name\\\’, null, [\\\’class\\\’ => \\\’form-control\\\’]) !!}
</div>
<div class=form-group>
{!! Form::label(\\\’email\\\’, \\\’E-mail Address\\\’) !!}
{!! Form::text(\\\’email\\\’, null, [\\\’class\\\’ => \\\’form-control\\\’]) !!}
</div>
<div class=form-group>
{!! Form::textarea(\\\’msg\\\’, null, [\\\’class\\\’ => \\\’form-control\\\’]) !!}
</div>
{!! Form::submit(\\\’Submit\\\’, [\\\’class\\\’ => \\\’btn btn-info\\\’]) !!}
{!! Form::close() !!}
注意表單是包裹在 open與 close 之間的。
驗(yàn)證數(shù)據(jù)
表單創(chuàng)建之后,我們要寫接收表單數(shù)據(jù)的方法,在接收處理之前,一定要對(duì)數(shù)據(jù)的有效性進(jìn)行驗(yàn)證。 還記得我們前面講的內(nèi)容嗎,使用 FormRequest 對(duì)象驗(yàn)證表單字段。
在命令行創(chuàng)建一個(gè)表單驗(yàn)證器:
php artisan make:request ContactFormRequest
為了簡(jiǎn)化邏輯起見(jiàn),我們要多所有調(diào)用該驗(yàn)證器的代碼,無(wú)論任何權(quán)限都要強(qiáng)制驗(yàn)證。修改 authorize方法:
public function authorize()
{
return true;
}
然后定義驗(yàn)證規(guī)則,內(nèi)置的規(guī)則足夠了:
public function rules()
{
return [
\\\’name\\\’ => \\\’required\\\’,
\\\’email\\\’ => \\\’required|email\\\’,
\\\’msg\\\’ => \\\’required\\\’
];
}
組合起來(lái)
有了表單提交,有了驗(yàn)證器,我們接著要處理這些數(shù)據(jù),并寫入數(shù)據(jù)庫(kù)。在控制器 ContactController的 store 方法內(nèi)寫入如下代碼。 在頭部引入驗(yàn)證器:
use App\\\\Http\\\\Requests\\\\ContactFormRequest;
使用依賴注入方式調(diào)用:
public function store(ContactFormRequest $request)
{
$contact = [];
$contact[\\\’name\\\’] = $request->get(\\\’name\\\’);
$contact[\\\’email\\\’] = $request->get(\\\’email\\\’);
$contact[\\\’msg\\\’] = $request->get(\\\’msg\\\’);
// 郵件發(fā)送邏輯代碼
return redirect()->route(\\\’contact.create\\\’);
}
寫在最后
發(fā)送郵件是一件操作系統(tǒng)與應(yīng)用程序綜合起來(lái)的事情,上面第三節(jié)中郵件發(fā)送的邏輯代碼, 我們?cè)谙乱黄恼陆o出。
本文雖小,卻講述了從表單到驗(yàn)證再到數(shù)據(jù)交互的方方面面,從中可對(duì)laravel處理流程有所了解。
Happy coding ??
來(lái)源:@程序員小助手
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):ps-sw.cn