在laravel

时间:2017-11-06 05:53:36

标签: php arrays laravel laravel-5

这是我的示例代码。

$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'] }}

1 个答案:

答案 0 :(得分:2)

尝试推送方法

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