根据时间戳laravel 5生成唯一ID

时间:2016-09-15 13:08:07

标签: php mysql laravel laravel-5

我想基于laravel中的时间戳创建uniqueid。 在laravel中,Timestamps变为2列,即created_at和updated_at。 像这样timestamps laravel

我想将created_at和updated_at列合并为唯一ID而不使用短划线( - )和(:)。 示例输出(屏幕截图中的第一行):2016091510453920160915104539

我将此代码用于$ transid列:

public function insertFund($request,$lender, $type)
{
    $transid = timestamp();  
    $fund = $this->fund->create([
        'transid' => $transid
    ]);
    return $fund;
}

但是,提交时我收到错误。 是否有可能为此编写代码?

先谢谢。

2 个答案:

答案 0 :(得分:1)

我试试这个,它对我有用

$now = Carbon::now();
$unique_code = $now->format('YmdHisu')

输出

20180410171800873514

如果你解析,你可以看到2018 04 10 17:18:00 873514

答案 1 :(得分:0)

我不知道你到底要做什么。我知道你想要创建一个记录并用连锁的时间戳填充transid。 由于尚未创建记录,因此之前的时间戳为空。 在你的情况下,我将创建记录,然后我会得到时间戳并更新相同的记录。
示例代码:

$fund = Fund::create($input);
$transid = $fund->created_at.$fund->updated_at;
$fund->transid = $transid;
$fund->update();

如果这不是您要做的,请提供更多信息以便提供帮助。