【问题标题】:How to get certains values from Eloquent collection?如何从 Eloquent 集合中获取特定值?
【发布时间】:2016-06-23 17:17:25
【问题描述】:

我有一个 Eloquent 集合(已经执行了查询),我需要对这个数组中的两个项目做一些事情,所以我需要使用 onlypluck 方法,但它们不会返回我需要的...

$orders = Order::with('parts')->paginate(50);

$orders[0]->parts->lists('name'); // Returns names
$orders[0]->parts->lists('custom_name'); // Returns custom names

$orders[0]->parts->only(['name', 'custom_name']); // Returns nothing
$orders[0]->parts->pluck(['name', 'custom_name']); // Returns no values

【问题讨论】:

    标签: eloquent laravel-5.2 laravel-collection


    【解决方案1】:

    only 方法返回集合中具有指定键的项。由于 Colllection 键不是您指定的那些列名,而是简单的递增数字,因此使用 only 方法不会得到结果。

    pluck 方法检索给定键的所有集合值。

    所以你必须使用

    $orders[0]->parts->pluck('name', 'custom_name');
    

    插入

    $orders[0]->parts->pluck(['name', 'custom_name']);
    

    删除那些[ ],它应该可以正常工作。

    【讨论】:

    • 如果我从 pluck 中删除括号,我会得到一些 yabadabadoo...i.imgur.com/aI954F4.png
    • 我猜你可以一个一个地做。 $orders[0]->parts->pluck('name');$orders[0]->parts->pluck('custom_name');
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2021-09-08
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    相关资源
    最近更新 更多