【发布时间】:2019-06-23 15:09:59
【问题描述】:
我的应用程序是用 symfony 编写的,它有一个在线结帐系统。通常当两个或多个用户同时结账时,会生成相同的订单号。 因此,它会在数据库中产生冗余,这可能会导致不一致。
我们正在为订单号生成九位 uniqid,同时我们正在对照数据库检查新生成的#id 以避免重复。
$slug = substr(hexdec(uniqid('', false)),0,9);
while($this->_doctrine->getManager()->getRepository('ZACartBundle:Cart')->findOneBySlug($slug) != null){
$slug = substr(hexdec(uniqid('', false)),0,9);
}
return $slug;
基本上,我们需要在并发用户完成结帐过程时为订单号提供唯一的 slug。
【问题讨论】:
标签: php doctrine symfony-2.3