2016-05-17 69 views
3

我下載了它在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

如果您需要在多個位置驗證相同的表單,該怎麼辦?你如何不重複自我 –

回答

3

你想擁有骨感控制器更好的可維護性。當你有很多的表單域有很多的驗證規則,你的控制器將是臃腫。所以,你需要移動在模型中的所有數據的邏輯,驗證邏輯請求類等

你可以閱讀更多關於單一職責原則here

1

例如,rules()方法,當你提交一個表單,它會檢查這些場是否有效。在控制器中,您可以使用

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