Database 在记录创建完成之前访问记录的ID

Database 在记录创建完成之前访问记录的ID,database,laravel,laravel-7,Database,Laravel,Laravel 7,我正在尝试在记录中存储记录的id。我知道我可以使用where语句查找最后一个ID,并以1的增量递增,但我很好奇,是否可以在记录生成时获取记录的ID $ScreenshotOBJ = Screenshots::create([ "CollectionID" => $ScreenshotOBJ->id, //This isn't the whole record just the important part

我正在尝试在记录中存储记录的id。我知道我可以使用where语句查找最后一个ID,并以1的增量递增,但我很好奇,是否可以在记录生成时获取记录的ID

$ScreenshotOBJ = Screenshots::create([
                   "CollectionID" => $ScreenshotOBJ->id,
//This isn't the whole record just the important part
                ]);

这是否可能,它会抛出一个错误,说明变量不存在。

您可以使
CollectionID
字段为空。然后在您的
屏幕截图
模型的引导方法中,您可以这样设置
集合ID

受保护的静态功能启动()
{
父::boot();
静态::已创建(函数($screenshot){
$screenshot->update(
['CollectionID'=>$screenshot->id]
);
});
}

从技术上讲,您可以这样做,但我不确定您为什么需要这样做。你想用这个ID做什么?这些记录需要分组为一个集合,所以我使用第一个记录作为集合ID。我很好奇,这是否可能我可以添加额外的代码,我添加的代码看起来很粗糙,我不确定在创建记录时是否可以获得ID。如果你想分组一些记录,您可能应该在模型上定义一个与self的hasMany关系,然后在表中设置一个列,例如parent_id,并通过将父记录的id放入parent_id列中来链接要分组的记录,以便将这些记录与父记录分组。