ron*_*run 1 laravel laravel-5 laravel-5.4
我没有特定的工作要做,只是想知道each()可以做什么。我用谷歌搜索,看到了这篇文章:https : //github.com/laravel/framework/issues/1380
它说
每个对象都可以对所有项目执行某些操作,这就是所有内容,而这就是每个对象已经在执行的操作。
有什么操作?
该each方法将遍历集合中的项目,并允许您对每个项目执行代码。each和之间的区别map是,虽然each仅迭代这些值,但map 用回调中返回的值替换该值。的文档each可在此处找到。如果要看源代码。
each方法遍历集合中的项目,并将每个项目传递给回调。如果您想停止遍历所有项目,则可以从回调中返回false。
$users->each(function($user, $key) {
$user->update(['last_login' => Carbon::now()]);
});
Run Code Online (Sandbox Code Playgroud)
您要查询的“某些操作”是回调。在这种情况下,回调/操作为:
function($user, $key) {
$user->update(['last_login' => Carbon::now()]);
}
Run Code Online (Sandbox Code Playgroud)
这会将集合上次登录中的所有用户更新为当前时间。此外,如果User模型上有一个名为updateLogin
class User extends Model
{
public function updateLogin()
{
$this->update(['last_login' => Carbon::now()]);
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,您可以对的集合进行以下操作$users:
$users->each->updateLogin();
Run Code Online (Sandbox Code Playgroud)
您可以在这里阅读有关内容:
集合还支持“高级消息”,这是对集合执行常见操作的捷径。
| 归档时间: |
|
| 查看次数: |
2759 次 |
| 最近记录: |