我没有具体的工作要做,只想知道每个()可以做什么。
我用Google搜索,看到这篇文章:https://github.com/laravel/framework/issues/1380
它说
每个都在那里对所有项目执行一些操作,就是这样 有它,这就是每个人已经在做的事情。
有什么操作?
答案 0 :(得分:3)
each
方法将迭代集合中的项目,并允许您对每个项目执行代码。 each
和map
之间的区别在于,each
只是遍历值,map
将值替换为回调中返回的值 。找到each
的文档here。如果您想查看source code。
每个方法迭代集合中的项目并传递 每个项目回调。如果你想停止迭代 这些项目,您可能会从回调中返回错误。
$users->each(function($user, $key) {
$user->update(['last_login' => Carbon::now()]);
});
"一些操作"你在询问是回调。在这种情况下,回调/操作是:
function($user, $key) {
$user->update(['last_login' => Carbon::now()]);
}
这将更新集合上次登录到当前时间的所有用户。此外,如果您在名为User
的{{1}}模型上有方法
updateLogin
您实际上可以使用class User extends Model
{
public function updateLogin()
{
$this->update(['last_login' => Carbon::now()]);
}
}
$users
您可以阅读here:
收藏集还支持"更高阶的消息",其中 是对收藏品采取共同行动的捷径。
答案 1 :(得分:2)
查看官方的laravel文档:Laravel 5.4 Documentation
它指出The each method iterates over the items in the collection and passes each item to a callback
。
因此,对于集合中的每个项目,它会调用一个函数或执行something
。那是什么,取决于你自己决定。
例如,以下代码段转储集合中的每个元素:
$collection = $collection->each(function ($item, $key) {
var_dump($item);
});
但是你也可以(例如)将它添加到数据库或者你想到的东西。