2016-07-31 4 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' 
    ]; 
} 

また、authorize()メソッドがあり、その中でy ouは、認証されたユーザが実際に与えられたリソースを更新/作成/削除する権限を持っているかどうかを確認することができます。 (それに応じてtrue/falseを返します)。

そしてコントローラーであなたFormRequestオブジェクトを注入:

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

今すぐ検証がストア(実際のコードの前にチェックされます)メソッドが実行されます。あなたはそれがを照らし\ルーティング\コントローラとそこを照らし\財団\検証\ ValidatesRequests形質をチェックどのように動作するかに興味がある場合

関連する問題