2017-09-27 123 views
1

我有laravel 5.5 自定義請求,這是要求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', 
     ];    
    } 

現在的方法路徑 上我想忽略當前唯一的ID 和我寫這樣的

'user_name' => 'required|min:1|max:40|unique:users,user_name,'.$this->id, 

但它總是告訴我這是你要更新的用戶名已被使用 我不想這樣做,從控制器 我想這樣做的請求 感謝

+0

select'count'(*)as'users'其中'user_name' = pulldozer和'id' <>這是上次的sql語句並且id <>沒有值 –

+1

是否是已認證的用戶或其他用戶更新? – Maraboc

+0

其他用戶更新我不能使用Auth :: user-> id –

回答

3

您使用$this->id,這裏$this不是用戶類,但一個Request實例,您可以考慮使用$this->user()->idauth()->id()Auth::id()代替。如果您的路線中有用戶標識,例如users/{userId},則還可以使用$this->route('userId')