laravel - 如何使用 Laravel DB::table()->insert() 获取最后插入的行?
问题描述
我使用此代码插入数据。
$conv = DB::table('conversations')
->insert([
'is_seen' => $other_user_id,
'user_one' => $user_id,
'user_two' => $other_user_id,
'user_one_status' => 1,
'user_two_status' => 0,
'message_status' => 0,
'last_message' => $messageCon
]);
它返回真假值。我需要最后插入的行。
解决方案
假设你没有使用 Eloquent 是有原因的,你可以使用 insertGetId。
$conv = DB::table('conversations')
->insertGetId([
'is_seen' => $other_user_id,
'user_one' => $user_id,
'user_two' => $other_user_id,
'user_one_status' => 1,
'user_two_status' => 0,
'message_status' => 0,
'last_message' => $messageCon
]);
文档中的警告:
自动递增 ID 如果表具有自动递增 id,请使用 insertGetId 方法插入记录,然后检索 ID:
当使用 PostgreSQL 时,insertGetId 方法期望自动递增的列被命名为 id。如果您想从不同的“序列”中检索 ID,您可以将列名作为第二个参数传递给 insertGetId 方法。
推荐阅读
- javascript - 如何使用动态字段修补角度值?
- algorithm - 优化搜索算法以根据连续猜测缩小隐藏数字的可能性
- javascript - 如何使用动态字段修补角度值?
- javascript - 从 Django 查询集 json 数据中获取特定键的值并将它们传递给 vueJS
- jquery - 未捕获的类型错误:$ 不是保存按钮中的函数
- excel - 将数据从一个电子表格复制到另一个电子表格后如何在 VBA 中合并格式?
- reactjs - reactjs 获取元素的子元素数量
- java - springboot弹性搜索日期转换ConversionException
- javascript - React Native - 渲染从 API 获取数据的屏幕时出现“未定义不是对象”错误
- pandas - 提高从压缩文件到数据框的运行时间