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

问题描述:

我下载了它在Laravel 5.0创建了一个简单的应用程序。我在Http \ Requests下找到了一些文件,例如什么是laravel 5创建自定义的请求类的目的是什么?

HTTP \请求\ Request.php

<?php namespace App\Http\Requests; 

    use Illuminate\Foundation\Http\FormRequest; 

    abstract class Request extends FormRequest { 

     // 

    } 

HTTP \请求\管理\ PhotoRequest.php

<?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; 
    } 

} 

什么是这些类的目的,它是如何生效?

+0

如果您需要在多个位置验证相同的表单,该怎么办?你如何不重复自我 –

你想拥有骨感控制器更好的可维护性。当你有很多的表单域有很多的验证规则,你的控制器将是臃肿。所以,你需要移动在模型中的所有数据的逻辑,验证逻辑请求类等

你可以阅读更多关于单一职责原则here

例如,rules()方法,当你提交一个表单,它会检查这些场是否有效。在控制器中,您可以使用

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