App\Ninja\Repositories\AccountRepository::getReferralCode PHP Method

getReferralCode() public method

public getReferralCode ( )
    public function getReferralCode()
    {
        do {
            $code = strtoupper(str_random(8));
            $match = User::whereReferralCode($code)->withTrashed()->first();
        } while ($match);
        return $code;
    }

Usage Example

 /**
  * @return $this|\Illuminate\Http\RedirectResponse
  */
 public function saveUserDetails()
 {
     /** @var \App\Models\User $user */
     $user = Auth::user();
     $rules = ['email' => 'email|required|unique:users,email,' . $user->id . ',id'];
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return Redirect::to('settings/' . ACCOUNT_USER_DETAILS)->withErrors($validator)->withInput();
     } else {
         $user->first_name = trim(Input::get('first_name'));
         $user->last_name = trim(Input::get('last_name'));
         $user->username = trim(Input::get('email'));
         $user->email = trim(strtolower(Input::get('email')));
         $user->phone = trim(Input::get('phone'));
         if (Utils::isNinja()) {
             if (Input::get('referral_code') && !$user->referral_code) {
                 $user->referral_code = $this->accountRepo->getReferralCode();
             }
         }
         if (Utils::isNinjaDev()) {
             $user->dark_mode = Input::get('dark_mode') ? true : false;
         }
         $user->save();
         event(new UserSettingsChanged());
         Session::flash('message', trans('texts.updated_settings'));
         return Redirect::to('settings/' . ACCOUNT_USER_DETAILS);
     }
 }