Laravel在寄存器中插入两个用户记录,如何防止这种情况?

时间:2018-09-11 12:09:19

标签: php laravel-5.5

我正在创建一个应用程序,在该应用程序中,我必须在使用自定义字段注册时插入用户。如网上所见,我在Laravel RegisterController中自定义了create方法。但是,现在,只要我注册一个新用户,该应用程序就会插入两个用户记录。有人可以帮我吗?

这是我在RegisterController中创建方法的代码

protected function create(array $data)
    {
        /********************************************************************************
         * CALCULATE ALL THE NEEDED DATA FOR THE USER
         ********************************************************************************/

        // Delete the uncompleted registration
        UncompletedRegistration::deleteByEmail($data['email']);

        // Set the right values based on the filled values
        $compercentagecreative = 0.0;
        $compercentagenotcreative = 0.0;
        $creativepercent = 0.0;

        switch ($data['headjob']) {
            case 1:
                $compercentagecreative = config('constants.percentageRates.comPercentageCreative.headjob');
                $compercentagenotcreative = config('constants.percentageRates.comPercentageNotCreative.headjob');
                $creativepercent = config('constants.percentageRates.creativePercent.headjob');
                break;
            case 2:
                $compercentagecreative = config('constants.percentageRates.comPercentageCreative.notheadjob');
                $compercentagenotcreative = config('constants.percentageRates.comPercentageNotCreative.notheadjob');
                $creativepercent = config('constants.percentageRates.creativePercent.notheadjob');
                break;
            default:
                $compercentagecreative = config('constants.percentageRates.comPercentageCreative.headjob');
                $compercentagenotcreative = config('constants.percentageRates.comPercentageNotCreative.headjob');
                $creativepercent = config('constants.percentageRates.creativePercent.headjob');
                break;
        }

        // Format the VAT number
        $data['vatnumber'] = Helper::formatVatNumber($data['vatnumber']);

        $isVatValid = false;

        try {
            // Check if vat is valid
            $response = Helper::checkVat($data['vatnumber']);
            $responseArray = json_decode($response);

            $isVatValid = $responseArray->valid;
        } catch (\Exception $exception) {
            $isVatValid = false;
        }

        // Generate an activation key
        $activationKey = md5(uniqid('CS', true));


        /********************************************************************************
         * CREATE THE USER IN THE DATABASE
         ********************************************************************************/

        // Create the user and insert in the database
        return User::create([
            'usertype'                      => config('constants.userTypes.USER'),
            'registeredon'                  => strtotime(date("Y-m-d H:i:s")),
            'activationkey'                 => $activationKey,
            'language'                      => 'nl',
            'email'                         => Helper::truncate($data['email']),
            'fullname'                      => Helper::truncate($data['lastname'] . ' ' . $data['firstname']),
            'firstname'                     => Helper::truncate($data['firstname']),
            'lastname'                      => Helper::truncate($data['lastname']),
            'password'                      => Hash::make($data['password']),
            'lastloginon'                   => strtotime('now'),
            'lastloginip'                   => $_SERVER['REMOTE_ADDR'],
            'activatedon'                   => strtotime(date('Y-m-d H:i:s', strtotime('1970-01-01 00:00:00'))),
            'deleted'                       => false,
            'companyname'                   => Helper::truncate($data['companyname']),
            'street'                        => Helper::truncate($data['street']),
            'number'                        => Helper::truncate($data['number']),
            'city'                          => Helper::truncate($data['city']),
            'zipcode'                       => Helper::truncate($data['zipcode']),
            'vatnumber'                     => Helper::truncate($data['vatnumber']),
            'validvat'                      => $isVatValid,
            'website'                       => Helper::truncate($data['website']),
            'phonenumber'                   => Helper::truncate($data['phonenumber']),
            'bankname'                      => Helper::truncate($data['bank']),
            'iban'                          => Helper::truncate($data['iban']),
            'bicswift'                      => Helper::truncate($data['bicswift']),
            'paymentremindermode'           => $data['paymentremindermode'],
            'invoicecreationremindermode'   => 2,
            'nettosavedmailmode'            => 1,
            'zombiemailsent'                => 0,
            'zombiemail180sent'             => 0,
            'nettosavedperinvoicmailemode'  => 1,
            'logo'                          => NULL,
            'emailaccepted'                 => false,
            'contractaccepted'              => false,
            'compercentagecreative'         => $compercentagecreative,
            'compercentagenotcreative'      => $compercentagenotcreative,
            'contractdate'                  => date("Y-m-d H:i:s"),
            'creativepercent'               => $creativepercent,
            'activity'                      => $data['activity'],
            'headjob'                       => $data['headjob'],
            'template'                      => config('constants.templates.ORIGINAL'),
            'freebtw'                       => isset($data['freebtw']) ? ($data['freebtw'] == "on" ? true : false) : false,
            'refid'                         => Input::get('invite_id'),
            'api_key'                       => Helper::generateRandomString(40),
            'allowed_quotation'             => true,
            'send_bcc'                      => false
        ]);
    }

0 个答案:

没有答案