【问题标题】:Creating new Associative collection and adding new items in laravel在 laravel 中创建新的关联集合并添加新项目
【发布时间】:2017-11-06 05:53:35
【问题描述】:

这是我的示例代码。

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

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

更新 #1:得到答案。 现在尝试像这样在视图上显示值:

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

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

这不应该以这种方式用于自定义集合吗?

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

它应该这样工作:{{ $leader['username'] }}

【问题讨论】:

    标签: php arrays laravel laravel-5


    【解决方案1】:

    试试push方法

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

    【讨论】:

    • 该死的,这太简单了。谢谢。
    • 你能告诉我如何在视图上显示它吗?我已经更新了我的问题。请检查。
    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多