2016-07-05 17 views
0

電子メールのCreateUserRequestには、一意の検証ルールがあり、それは私のEditUserRequestでも同じですが、アドレスが既に登録されているとも言います。ルールの一意性から更新するユーザーの電子メールアドレスを除外するにはどうすればよいですか?それ以外の場合は、ユーザーが更新されるたびに新しいメールアドレスを登録する必要があります。一意の検証を保持する方法Laravel 5.2

EditUserRequest:

namespace App\Http\Requests; 

use App\Http\Requests\Request; 

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

    public function messages() 
    { 
     return [ 
      'unique'=>'That email address is already registered', 
      'regex'=>'Password must contain at least 1 letter and 1 number' 
     ]; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'name'=>'required|min:2|max:50', 
      'email'=>'required|email|unique:users,email|max:50' 
      //'password'=>'min:8|regex:/[a-zA-Z][0-9]/' NOT IN USE WHILE IN DE 
     ]; 
    } 
} 

CreateUserRequest:

namespace App\Http\Requests; 

use App\Http\Requests\Request; 

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

    public function messages() 
    { 
     return [ 
      'unique'=>'That email address is already registered', 
      'regex'=>'Password must contain at least 1 letter and 1 number' 
     ]; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'name'=>'required|min:2|max:50', 
      'email'=>'required|email|unique:users,email|max:50', 
      'password'=>'required' 
      //'password'=>'required|min:8|regex:/[a-zA-Z][0-9]/' NOT IN USE WHILE IN DE 
     ]; 
    } 
} 

答えて

0

あなたのEditUserRequestを変更し、無視され、現在のレコードのIDを追加する必要があります。

公式ドキュメントを見てみましょう:段落に https://laravel.com/docs/5.1/validation#rule-unique を:指定されたIDを無視するユニークなルールを強制のような

何か:

'email'=>'required|email|unique:users,email,'. $user->id .'|max:50' 
+0

依存性注入がない場合は、$ user-> idの代わりにRequest :: input( 'id')を使用できます。 –

+0

'request() - > id'を使うこともできます。 – user2094178

+0

それは、$ userは未定義だと言います。 $ユーザにルール()アクセスを与えるにはどうすればよいですか? –

0

を必要だったことすべてが$user = User::find($this->users);を追加しましたし、提案通りに$user->id;を追加するだけです。最初にユーザーを見つけられなかっただけです。

関連する問題