2017-09-27 4 views
1

私は現在、一意のID を無視するようにしたい、これはメソッドパス になりまし要求laravelカスタム要求編集

public function rules() 
{ 
    if($this->method() == 'POST') 
    { 
     return [ 
      'user_name' => 'required|unique:users|max:40|min:1', 
      'user_email' => 'required|email|unique:users|max:40|min:3', 
      'user_phone' => 'required|max:40|min:1', 
      'password' => 'required|min:3', 
      'image' => 'image|mimes:jpg,jpeg,gif,png|max:2048', 
     ];   
    } 
    elseif($this->method() == 'PATCH') 
    { 
     return [ 
      'user_name' => 'required|min:1|max:40|unique:users,user_name,'.$this->id, 
      'user_email' => 'required|email|unique:users|max:40|min:3', 
      'user_phone' => 'required|max:40|min:1', 
      'password' => 'required|min:3', 
      'image' => 'image|mimes:jpg,jpeg,gif,png|max:2048', 
     ];    
    } 

あるlaravel 5.5 上のカスタム要求を持っていると私は、この

ようにそれを書きました
'user_name' => 'required|min:1|max:40|unique:users,user_name,'.$this->id, 

が、そのはいつもあなたが更新しようとしているユーザ名が、私は、コントローラ から私はそれをやってみたいことをやっていけない使用 にすでにあるthatsの私に告げますあなたが$this->idを使用している要求 おかげ

+0

'user_name' = pullldozerと' id' <>これは最後のSQL文であり、id <>は値がありませんから、集計としてカウント(*)を受け取ります –

+1

認証されたユーザか他のユーザですか?更新しますか? – Maraboc

+0

他のユーザーのアップデート私はAuth :: user-> id –

答えて

3

は、ここ$thisは、Userクラスではなく、要求のインスタンスは、あなたの代わりに$this->user()->idまたはauth()->id()またはAuth::id()を使用して検討することができます。 users/{userId}のようなルートのユーザーIDをお持ちの場合は、$this->route('userId')を使用することもできます。

関連する問題