如何在 Laravel 5.2 中生成唯一的优惠券代码?

kun*_*nal 1 php laravel-5.2

我想保存唯一的优惠券代码以及字符和数字的混合,它的长度应该是 6。我正在使用 Laravel 框架 5.2

enter code here
$data = $request->all();
        unset($data['_token']);
        //echo "<pre>"; print_r($data); die;
        for ($i=1; $i <=$data['countvoucher']; $i++) { 
            $voucher = new Voucher;
            $voucher->code = "123456";// it should be dynamic and unique
            $voucher->percentage = $data['percentage'];
            $voucher->usage  = $data['usage'];
            $voucher->expirydate = $data['expirydate'];
            $voucher->save();
        }
Run Code Online (Sandbox Code Playgroud)

$voucher->我想保存在这个文件中的代码谁能帮我

dim*_*283 6

我正在使用这个功能你可以像下面这样使用它

 $voucher->code = $this->generateRandomString(6);// it should be dynamic and unique 

public  function generateRandomString($length = 20) {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, $charactersLength - 1)];
        }
        return $randomString;
    }
Run Code Online (Sandbox Code Playgroud)

  • 抱歉,但是保证这里唯一性的东西是什么 (2认同)

小智 6

  private static function generateNumber()
    {
        $number = Str::random(9);
        if (self::where('number', $number)->count() > 0) self::generateNumber();
        return $number;
    }
Run Code Online (Sandbox Code Playgroud)