美文网首页
laravel 的表单请求【类】

laravel 的表单请求【类】

作者: 苍松拔雨 | 来源:发表于2020-01-09 07:13 被阅读0次

1. 介绍

控制器方法中的某些业务流程经常是重复的 ,比如输入验证 、用户认证 、授权等

如果想要一个结构来进行规范化 ,可以使用 Laravel 的表单请求将这些常见行为从控制器方法中提取出来

表单请求是一个自定义的请求类 。它的目的是映射到提交表单 、负责验证请求 、授权用户 ,并将用户重定向到失败的验证( 可选 )

2. 创建表单请求

php artisan make:request CreateCommentRequest

创建出的文件内容如下

// app/Http/Requests/CreateCommentRequest.php
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class CreateCommentRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        // 这个方法如果返回 true ,用户就会被授权执行对应的请求( 不知道对应的请求是什么别急 ,继续往下看 )
        // 如果返回 false ,Laravel 会返回 403 Forbidden 错误 ,而不执行路由代码
        return false;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        // 这个方法返回一个规则数组
        // 如果对应的请求没有通过这个验证规则 ,就会像 Laravel 控制器的 validate() 方法一样( 将用户重定向到上一页 ,并闪存用户输入以及错误信息 )
        // 这里不理解的可以参考下 Laravel 的 "验证器" 和 "消息包"
        return [
            //
            'title' => 'required'
        ];
    }
}

3. 使用表单请求

使用表单请求很简单 ,我们以上面例子中生成的表单请求类为例

// 任何指定 (type-hint) 表单请求的路由都会自动进行 App\Http\Requests\CreateCommentRequest 中定义的验证
Route::post('comments', function(App\Http\Requests\CreateCommentRequest $request){
    //
});

相关文章

网友评论

      本文标题:laravel 的表单请求【类】

      本文链接:https://www.haomeiwen.com/subject/vrgeactx.html