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

相关文章
相关标签/搜索