2016-07-31 27 views
0

我有一個註冊表單。我正在驗證控制器中的字段。 但這不好,我的控制器會很混亂。 其實我希望我的控制器清潔可讀。 如何以特定類別中的其他方式定義驗證?使控制器清潔並可在laravel 5.2中讀取(特別定義驗證)

$validator = Validator::make($request->all(), [ 
     'username' => 'required|min:4|max:64|unique:users|regex:/[a-zA-Z]+[a-zA-Z0-9_]*/', 
     'email' => 'required|email|min:8', 
     'title' => '|max:32', 
     'full_name' => '|max:32', 
     'address' => 'required|max:200', 
     'password' => array(
      'required', 
      'confirmed', 
      'regex:/xx/', 
      'min:8'), 
     'phone' => 
     'mobile' => 
     'image' => 'size:200',]); 
+0

我想你應該先閱讀文檔,然後在提交新問題前先搜索網頁。 –

回答

2

您可以使用FormRequest對象並在其中定義驗證。

所以,在你的榜樣,您可以創建RegisterUserRequest

php artisan make:request RegisterUserRequest 

,那麼你可以將你的驗證規則應用程序/ HTTP /採購/ RegisterUserRequest規則()方法:

public function rules() 
{ 
    return [ 
     'username' => 'required|min:4|max:64|unique:users|regex:/[a-zA-Z]+[a-zA-Z0-9_]*/', 
     'email' => 'required|email|min:8', 
     'title' => '|max:32', 
     'full_name' => '|max:32', 
     'address' => 'required|max:200', 
     'password' => array(
      'required', 
      'confirmed', 
      'regex:/xx/', 
      'min:8'), 
     'image' => 'size:200' 
    ]; 
} 

還有授權()方法,其中,y您可以檢查經過身份驗證的用戶是否確實有權更新/創建/刪除給定資源。 (相應地返回true/false)。

然後在控制器中注入你FormRequest對象:

public function store(RegisterUserRequest $request) 
{ 
    // your other non-validation code 
} 

現在您的驗證將被()被執行方法商店的實際編碼之前進行檢查。

如果你有興趣在如何工作的檢查照亮\路由\控制器,那邊照亮\基金會\確認\ ValidatesRequests特質。