生成唯一订单号


Generating Unique Order Number

我试图通过图形API上传Facebook页面的封面图像,但它一旦更新就出现在时间轴上。

我使用下面的字符串来检查我的订单号是否唯一

$unique_order_number = strtoupper(substr(md5(microtime()), 0, 8))

现在我只想确保这个数字没有被任何其他顺序占用,并且想使用while循环或do-while循环来检查赋值。

public function __unique_order_no() {
    $order_no_exisits = $this->Order->find('first', array('order_no' => $unique_order_number));
    while (!empty($order_no_exisits)) {
        $unique_order_number = strtoupper(substr(md5(microtime()), 0, 8));
        $order_no_exisits = $this->Order->find('first', array('order_no' => $unique_order_number));
        debug($order_no_exisits);
    }
    debug($order_no_exisits);

}

我怎么能使用While循环来运行它,直到我得到一个唯一的数字?

while (!empty($order_no_exisits)) {
$unique_order_number = strtoupper(substr(md5(microtime()), 0, 8));
if(!$this->Order->find('first', array('order_no' => $unique_order_number)))
exit;
}

我需要做一些类似的事情,一个解决方案,以保持唯一的id和我结束了一个解决方案,使用PHP函数time()像这样的$reference_number = 'BFF-' . time();,你可以改变BFF的东西,使你的业务逻辑更有意义。这样我就不用担心新生成的id是否已经被占用了。

希望对大家有所帮助