如何从Eloquent集合中获取确定值?

时间:2016-03-09 11:03:55

标签: eloquent laravel-5.2 laravel-collection

我有一个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

enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

所以你必须使用

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

insted of

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

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