Laravel 8 tap() {#collection-method}
tap 函数接受两个参数: 任意 $value 和闭包。 $value 将被传递给闭包,并被 tap 函数返回。与闭包的返回值无关:
$user = tap(User::first(), function ($user) {
$user->name = 'taylor';
$user->save();
}); 如果没有向 tap 函数传递闭包,可以调用给定 $value 的任意方法。调用此方法的返回值永远是 $value ,无论方法在其定义中返回什么。例如,Eloquent 的 update 方法指定返回一个整数。但是,我们可以通过 tap 函数链式调用 update 方法强制其返回模型自身:
$user = tap($user)->update([
'name' => $name,
'email' => $email,
]);