Posted in

Laravel – Personalizar la clase RegisterController.php

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;
    }

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.