在 foreach 循环中遍历 laravel 中的结果时,它只保存新数组元素中的最后一个元素?

问题描述 投票:0回答:1

我的控制器

$followers = Followers::where('requested', $user->id)->where('status', 1)->get();

    foreach ($followers as $follower){

        $followerss = User::with('id', $follower->requester)->get();

    }

如果该特定 ID 有两个或更多关注者,但我 $followerss 变量,它仅存储最后一个关注者数据,而不存储以前的数据。

提前致谢<3

php laravel loops laravel-5 eloquent
1个回答
1
投票

那是因为每次迭代都会覆盖变量

$followerss
的值。

您需要在进入循环之前将

$followerss
声明为数组,然后在循环中
merge
push
项目

推送示例:

$followerss = [];

foreach ($followers as $follower){

    $users = User::with('id', $follower->requester)->get();
    foreach($users as $user) {
        $followerss[] = $user;
    }

}

合并示例:

$followerss = [];

foreach ($followers as $follower){

    $followerss = array_merge($followerss, User::with('id', $follower->requester)->get());

}
© www.soinside.com 2019 - 2024. All rights reserved.