如何在成功插入时获得不同字段上的lastInserted Value而不是ID


How to get lastInserted Value on different field instead of ID when successfully insert

你好,

laravel上有一个函数,您可以使用->insertGetId命令获取最后插入的ID,例如:

$insId = DB::table('time_log_tbl')
->insertGetId(array('uxid' => $user->xid, 'time_in' => date('Y-m-d H:i:s') ));
echo $insId; // e.g: 10

是否也有一个函数来获取其他字段,如nameaddress,而不仅仅是ID?感谢

我用它来检索timestamp的值,让用户知道它在数据库中记录的确切时间。

您应该使用最后一个插入ID,并在表中查询名称、地址列,尤其是该ID,类似于以下内容:

$id = last_insert_id();
$q = "select name,address from tbl where id=".$id;

尝试这个

对于Pre-Laravel 4

$lastdata = DB::table('time_log_tbl')->order_by('upload_time', 'desc')->first();

对于Laravel 4及以后的

$lastdata = DB::table('time_log_tbl')->orderBy('upload_time', 'desc')->first();

基本上,这将获得最后一行数据,即最后插入的数据,但如果您想使用最后插入的id,则可以使用带有laravels内置查询生成器的最后插入id。

$insId = DB::table('time_log_tbl')
->insertGetId(array('uxid' => $user->xid, 'time_in' => date('Y-m-d H:i:s') ));
$data = DB::table('time_log_tbl')->where('id', $insId)->first();

我希望这能有所帮助。