如何在laravel中获取更新的记录ID?

如何在laravel中获取更新的记录ID?,laravel,laravel-5,eloquent,laravel-query-builder,Laravel,Laravel 5,Eloquent,Laravel Query Builder,我正在更新laravel中的多行 StoragePeriod::where('customer_id', $invoice->customer_id)->update(['invoice_id' => $invoice->id]); 如何获取这些更新记录的ID?您可以使用该方法 如果您希望获得所有型号,而不仅仅是ID,您可以用get替换pluck tap(StoragePeriod::where('customer_id', $invoice->customer

我正在更新laravel中的多行

 StoragePeriod::where('customer_id', $invoice->customer_id)->update(['invoice_id' => $invoice->id]);
如何获取这些更新记录的ID?

您可以使用该方法

如果您希望获得所有型号,而不仅仅是ID,您可以用
get
替换
pluck

tap(StoragePeriod::where('customer_id', $invoice->customer_id))
    ->update(['invoice_id' => $invoice->id])
    ->pluck('id');
从文件中:

如果没有向tap函数传递闭包,则可以调用任何方法 在给定的美元价值上调用的方法的返回值将 始终为$value,无论该方法在 它的定义。例如,雄辩的更新方法 返回一个整数。但是,我们可以强制该方法返回 通过tap链接update方法调用来建模自身 功能:

$user = tap($user)->update([
    'name' => $name,
    'email' => $email, 
]);

上述语句的返回值将包含它,因此,
$sPModel=StoragePeriod::where('cust…
)将使用
$sPModel->pull('id')从中提取id;
,这是一种解决方法