我生成唯一的代码来将它们用作优惠券代码。这就是优惠券代码的生成方式
public function generateCoupon(){
$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$res = "";
for ($i = 0; $i < 6; $i++) {
$res .= $chars[mt_rand(0, strlen($chars) - 1)];
}
return $res;
}为了确保我不会在DB中多次使用相同的代码,我会检查生成的代码是否存在:
$coupon = $this->generateCoupon();
while($repository->findOneByCode($coupon) != null){
$coupon = $this->generateCoupon();
}优惠券代码由用户请求,并被分配给用户,直到使用为止。
优惠券在使用时会发生什么情况?现在,代码已从数据库中删除,可以再次使用。这是一个很好的实践吗?或者我应该永远保存代码?您将如何管理您的优惠券?
发布于 2012-12-02 21:48:47
您可以使用UUID作为优惠券代码,以确保唯一性,或者将优惠券代码存储在标记为已使用的记录中。
https://stackoverflow.com/questions/13669851
复制相似问题