Laravel 5.4 入門系列 12. 使用請求類進行字段驗證

本節內容比較簡單,以前咱們使用 validator 方法來進行字段驗證,這樣作有一個很差的地方就是,若是你要在不少地方使用一樣的驗證,就須要重複編寫代碼。所以,Laravel 提供另一種方式來進行字段驗證,即「請求類」。php

首先,建立請求類:app

$ php artisan make:request RegistrationForm

將註冊相關信息轉移到該類中:ui

/app/Http/Requests/RegistrationForm.php

use App\Mail\Welcome;
use App\User;

class RegistrationForm extends FormRequest
{

    public function authorize()
    {
        return true;
    }

 
    public function rules()
    {
        return [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|confirmed',
        ];
    }

    public function persist()
    {

        $user = User::create(
            $this->only(['name','password','email'])
        );

        auth()->login($user);

        \Mail::to($user)->send(new Welcome($user));
    }
}

註解:this

  • 任何人都有權利作出該請求(即註冊),因此 authorize() 應該返回 truecode

  • rule() 裏面定義驗證規則orm

  • 咱們將註冊表的建立用戶以及發送郵件功能也封裝到了請求類中io

控制器的代碼能夠簡化成:function

use App\Http\Requests\RegistrationForm;

public function store(RegistrationForm $request)
{
    $request->persist();

    return redirect()->home();
}

若是咱們在其餘地方也要使用該請求,直接傳入 RegistrationForm 就能夠了,是否是方便多了 :)class

相關文章
相關標籤/搜索