laravel registration:在验证之外生成的验证中添加错误

时间:2017-09-27 18:36:07

标签: php laravel validation laravel-5.4

所以这是我的注册控制器

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以及它是否有效I && #39;我会做点什么

我想将验证功能更改为

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!

如何返回向用户注册此错误以查看或将此错误添加到验证错误?

1 个答案:

答案 0 :(得分:2)

Laravel有一个干净的方法来做到这一点

试试这个

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

或可能是

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