%PDF- %PDF-
Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/app/Helpers/ |
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/app/Helpers/UniqueStringHelper.php |
<?php namespace App\Helpers; use DB; use Illuminate\Support\Str; class UniqueStringHelper { /** * Create a unique random string * * @param string $table * @param string $col * @param int $chars */ public static function createKey($table, $col, $chars = 16) { $unique = false; // Store tested results in array to not test them again $tested = []; do{ // Generate random string of characters $random = Str::random($chars); // Check if it's already testing // If so, don't query the database again if( in_array($random, $tested) ){ continue; } // Check if it is unique in the database $count = DB::table($table)->where($col, '=', $random)->count(); // Store the random character in the tested array // To keep track which ones are already tested $tested[] = $random; // String appears to be unique if( $count == 0){ // Set unique to true to break the loop $unique = true; } // If unique is still false at this point // it will just repeat all the steps until // it has generated a random string of characters } while(!$unique); return $random; } }