Php 在laravel 5中创建自定义请求类的目的是什么?

Php 在laravel 5中创建自定义请求类的目的是什么?,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我下载了一个在Laravel 5.0中创建的简单应用程序。我在Http\Requests下找到了一些文件,例如 Http\Requests\Request.php <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; abstract class Request extends FormRequest { // } <?ph

我下载了一个在Laravel 5.0中创建的简单应用程序。我在Http\Requests下找到了一些文件,例如

Http\Requests\Request.php

    <?php namespace App\Http\Requests;

    use Illuminate\Foundation\Http\FormRequest;

    abstract class Request extends FormRequest {

        //

    }
<?php namespace App\Http\Requests\Admin;

use Illuminate\Foundation\Http\FormRequest;

class PhotoRequest extends FormRequest {

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'language_id' => 'required|integer',
            'photo_album_id' => 'required|integer',
        ];
    }

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

}

为了更好的可维护性,您希望拥有小巧的控制器。当你有很多表单字段和很多验证规则时,你的控制器将会膨胀。因此,您需要移动模型中的所有数据逻辑、请求类中的验证逻辑等


您可以阅读有关单一责任原则的更多信息。

例如
rules()
方法,当您提交表单时,它将检查字段是否有效。在控制器中,您可以使用

function postForm(PhotoRequest $request){
    // Your Codes. You don't need to validate the data
}

如果您需要在多个位置验证同一表单,该怎么办?这就是为什么你不重复你的自我+1。总之,管制员应该只负责路由。否则,控制器就会变得知识渊博。