创建新的关联集合并在 laravel 中添加新项



这是我的示例代码。

$users = 3 users //suppose
$leaders = new Collection();
foreach($users as $user)
{
    $name = $user->name;
    $username = $user->username;
    $leaders->put('name', $name);
    $leaders->put('username', $username);
}
dd($leaders);

这只给了我一个用户的结果(第三个用户)

Collection {#274 ▼
  #items: array:2 [▼
    "name" => "user3"
    "username" => "username3"
  ]
}

因为put()正在用相同的键替换这些值。

我也尝试过这个:

$leaders->push($name);
$leaders->push($username);

但我得到:

Collection {#274 ▼
  #items: array:6 [▼
    0 => "user1"
    1 => "username1"
    2 => "user2"
    3 => "username2"
    4 => "user3"
    5 => "username3"
  ]
}

如何为不同的用户创建不同的项目数组?

更新#1:得到答案。现在尝试在视图上显示值,如下所示:

@foreach($leaders as $leader)
    {{ $leader->username }}
@endforeach

错误:尝试获取非对象的属性。

对于自定义集合,这不应该以这种方式工作吗?

更新#2:没关系。找到了。

它应该以这种方式工作:{{ $leader['username'] }}

试试推送方法

foreach($users as $user)
{
    $leaders->push([
        'name' => $user->name,
        'username' => $user->username,
    ])
}

最新更新