3 回答
TA贡献1829条经验 获得超7个赞
这是数据库中列的id值,因为你还没有保存,数据库中什么也没有(你无法获取它)。id
我想您需要执行一些可能在某些时候失败或被取消的任务,对于这种情况,有一个解决方法,例如:
DB::beginTransaction();
try {
$article = new Article();
$article->fields = 'example';
$article->save();
// Anything needing ID here...
DB::commit();
} catch (\Exception $e) {
DB::rollback();
// Handle or re-throw:
throw $e;
}
TA贡献1796条经验 获得超10个赞
您无法获取尚未保存的对象/模型的 ID。
在这种情况下,ID 不存在,您可以找到最新的 ID 并将该 ID 加一,但是您可能会在某些竞争条件下运行,当另一个向该表添加新元素的脚本速度更快时,然后您稍后保存的 ID 错误。
如果您需要 ID 来存储该模型的引用,正确的方法是先保存模型,然后保存引用。
如果您需要 ID 来保存文件名中包含 ID 的文件,那么您在数据库中保存为文本的内容可以先保存模型(以检索 ID),然后再次保存包含缺失信息的模型。
TA贡献1848条经验 获得超6个赞
初始化一个空模型来获取它的 id 没有帮助,因为 idid
总是在运行时计算。请记住,系统可能n
同时收到请求。
nullable
如果您想创建一个空行来获取保留,则需要创建这些字段id
。
或者,如果您只需要存储在数据库表中的最后一个 id,则可以通过以下方式执行此操作,但这可能会导致数据中出现一些不匹配和不一致:
$latest_id = Article::latest()->first()->id;
- 3 回答
- 0 关注
- 194 浏览
添加回答
举报