Laravel foreach 检索用户 ID

Laravel foreach to retrive user IDs

在我的 laravel 项目中,我有模型 Promo,仅位于 user_id 列。 我在这个模型中有 2 条记录。 我需要从促销模型中检索所有 user_id

首先,我从模型中取出所有 user_id:

$userList = Promo::get();

dd说我,我有2条记录:

这个真实的结果,比我尝试做的 foreach:

        foreach ($userList as $userIds) {
            $userIds = $userIds->user_id;
        }

如果我使用 var_dumpdd,它总是向我显示 1 user_id,但我在 table 中有 2 user_id。

哪里会出错?

您每次都在覆盖 $userIds。有一个 easier way 来获取用户 ID

$userIds = $userList->pluck('user_id')->all();

这将从您的 userList 集合中 return 一个 user_ids 数组。

在您的代码中,您将用户 ID 分配给 $userIds 变量。它总是 returns 一个值。 试试这个,

  $userIdsarray =[] ;
foreach ($userList as $userIds) {
  $userIdsarray[] = $userIds->user_id;
}

每次循环计数时,您都在替换 $userIds 的值,最终值是 $userList 的最后一个值。 您可以通过两种不同的方式进行操作:

循环:

$userList = Promo::get();
$userIds = [];

foreach ($userList as $user) {
    $userIds[] = $user->user_id;
}

或与Laravel collectionpluck()推荐):

$userIds = Promo::pluck('user_id');