Podemos añadir funciones que harán un override para poder personalizar el proceso de registro en cuanto a código.
protected function validator(array $data) {
Validator::extend('check_client_code',function($attribute, $value, $parameters){
$qr = QrCode::where('code', $value)->get();
print_r($qr);
});
return Validator::make($data, [
'first_name' => ['required', 'string', 'max:60'],
'last_name' => ['required', 'string', 'max:60'],
'email' => ['required', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:8'],
//'g-recaptcha-response' => 'required|captcha',
]);
}
public function register(Request $request){
$this->validator($request->all())->validate();
$this->create($request->all());
return redirect("client");
}
protected function create(array $data) {
$user = User::create([
'role' => 'client',
'lang' => app()->getLocale(),
'name' => $data['first_name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
Client::create([
'user_id' => $user->id,
'client_code' => isset($data['client_code']) ? $data['client_code'] : '',
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'postal_code' => $data['postal_code']
]);
return $user;
}

