2017-09-27 13 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, 

하지만 항상 저를 업데이트하려는 사용자 이름은 내가 컨트롤러 에서 내가 그것을하고 싶은 것을하고 싶지 해달라고 사용 이미 이잖아 이야기 당신이 $this->id를 사용하는 요청 감사

+0

'user_name' = pullldozer 및'id' <> 여기서 집계는 count (*)를 선택하고 id는 <> 값이 없습니다. –

+1

인증 된 사용자 또는 다른 사용자입니까? 업데이트? – Maraboc

+0

다른 사용자가 업데이트 할 수 없습니다. Auth :: user-> id –

답변

3

, 여기 $this는 사용자 클래스는 아니지만 요청 인스턴스 대신 $this->user()->id 또는 auth()->id() 또는 Auth::id() 사용을 고려할 수 있습니다. 경로에 사용자 ID가 users/{userId} 인 경우 $this->route('userId')을 사용할 수도 있습니다.