2017-09-27 77 views
0

,所以這是我的註冊控制器laravel登記:添加錯誤校驗外部生成驗證

protected function validator(array $data) 
{ 

    return Validator; 
} 

/** 
* Create a new user instance after a valid registration. 
* 
* @param array $data 
* @return User 
*/ 
protected function create(array $data) 
{ 
    register here 
} 

我想轉診系統添加到這個過程基本上當註冊用戶可以發送一個refer_id(ID的用戶的誰曾提到這個用戶的網站),我會檢查引用ID,如果它是有效的,我會做一些我的事

我想改變我的驗證功能,像

protected function validator(array $data) 
{ 

    $validation = Validator::make($data, [ 
     'email' => ['required' ,'email' , 'max:255', Rule::unique('users')->where('rep_id' , $this->rep->id) ] , 
     'password' => 'required|string|min:6|confirmed', 
     'name' => 'required|max:255', 
     'last_name' => 'required|max:255', 
     'refer_id' => 'present|numeric', 

    ]); 

    if(isset($data['refer_id'])) 
    { 
     $refer = User::find($data['refer_id']) ; 
     if($refer) 
     { 
      // return error : refer id is wrong ! 
     } 
    } 

    return $validation ; 
} 

我的問題是這部分

// return error: refer id is wrong! 

我怎麼能返回與此錯誤返回查看或此錯誤添加到驗證錯誤註冊用戶?

回答

2

Laravel有一個乾淨的方式來做到這一點

試試這個

'refer_id' => 'nullable|exists:users,id' 

或可能

'refer_id' => 'present|numeric|exists:users,id'