在Laravel中生成唯一的收据代码

时间:2016-04-21 16:34:59

标签: laravel laravel-5.1

我的 laravel 应用程序中的Hello我有一个函数可以在客户完成交易时生成唯一的收据代码。

这是代码的格式: 1.商店的4位数标识符,例如。的 ABCD 2.购买商品的类型或类别。例如。电子产品 E ,玩具 T 3.特殊秘密两位数代码,例如。可以在 01 10 之间。 4.日期格式很短。例如。 2016年1月31日 31J16 5.客户用于支持问题或退货的四位数代码。例如。的 3267 即可。这是随机生成的。

所以样本看起来像这样: ABCDT0131J163267 总长度为16个字符。

现在我想要做的是每次生成代码时确保它在我的数据库中不存在,如果是,那么它应该生成一个新的,依此类推,直到它出现一个唯一的代码。

现在我的问题是获得一个高效解决方案来生成唯一的代码,这些代码不会像我打算那样多次循环。

1 个答案:

答案 0 :(得分:0)

好的,所以我想到了一些让我在第一个循环中只进行一次数据库调用的东西。我将数据库中的所有现有代码都放到一个列表中,然后使用函数in_array()来检查列表,如果它存在,它会生成一个新代码。

唯一的缺点是,如果在生成列表之后进行了事务,特定代码将不是列表的一部分。