如何用Laravel生成报告票号?

How to generate report ticket number with Laravel?

目前正在进行失物招领项目,用户可以在其中遗忘物品时进行报告。

我正在使用 laravel 5.4,我的数据库中已经有一些数据,并且我已经根据我的客户提出了所有要求。但最后,我的客户希望我为每份报告添加唯一的报告编号。我已经用谷歌搜索了,但找不到与我的案例相似的教程

我完全是编程新手,任何帮助将不胜感激。

您可以使用 Unix 时间戳作为您的唯一字段。

$token = time();

现在将新报告保存到数据库时添加此标记。如果你想让它更独特,你可以添加一些更多的随机字符串,比如

在Laravel 5.8中你需要先使用use Illuminate\Support\Str;这个。然后

$token = time().Str::random(5);

在以前的版本中它是这样的

$token = time().str_random(5);

有很多方法可以做到这一点,但请记住以下两个冲刺:

  1. 使用数据库中的自动递增列并向其中添加一些其他内容,例如当前日期,并确保在其中添加一些零(例如 20192208-00001)。
$date = new DateTime('now');
echo $id = $date->format('Y-m-d') . "-" . str_pad($ticket->id, 6, "0", STR_PAD_LEFT);
  1. 您也可以为此使用 Uuid。这些是唯一生成的数字,几乎不可能发生碰撞。要设置它,您需要一个支持它的库 composer require ramsey/uuid。然后你可以像这样生成你的随机数:
$uuid4 = Uuid::uuid4();
echo $uuid4->toString(); // i.e. 25769c6c-d34d-4bfe-ba98-e0ee856f3e7a