Laravel 集合 return 只有字段的集合
Laravel collection return collection with only field
我有这个 Laravel 集合,其中包含一些字段:
Collection {#324 ▼
#items: array:3 [▼
0 => array:5 [▼
"img_src" => "http://newregalospersonales.dev/./svg/regalos-personalizados-gift.svg"
"img_alt" => "<span>Regalos</span> originales"
"class" => "personalised-gifts"
"elements" => array:4 [▼
0 => array:2 [▶]//element1
1 => array:2 [▶]//element2
2 => array:2 [▶]//element3
3 => array:2 [▶]//element4
]
]
1 => array:5 [▼
"img_src" => "http://newregalospersonales.dev/./svg/love-gifts.svg"
"img_alt" => "<span>Regalos</span> románticos"
"class" => "love-gifts"
"elements" => array:4 [▼
0 => array:2 [▶]//element1
1 => array:2 [▶]//element2
2 => array:2 [▶]//element3
3 => array:2 [▶]//element4
]
]
2 => array:5 [▼
"img_src" => "http://newregalospersonales.dev/./svg/regalos-ocasiones-especiales.svg"
"img_alt" => "<span>Detalles</span><br>de boda"
"class" => "wedding"
"elements" => array:4 [▼
0 => array:2 [▶]//element1
1 => array:2 [▶]//element2
2 => array:2 [▶]//element3
3 => array:2 [▶]//element4
]
]
]
}
而且我只得到字段为 'elements' 的集合。
我想要这样的结果:
Collection {#324 ▼
#items: array:3 [▼
0 => array:4 [▼
0 => array:2 [▶] //element1
1 => array:2 [▶ //element2
2 => array:2 [▶] //element3
3 => array:2 [▶] //element4
]
1 => array:4 [▼
0 => array:2 [▶] //element1
1 => array:2 [▶] //element2
2 => array:2 [▶] //element3
3 => array:2 [▶] //element4
]
2 => array:4 [▼
0 => array:2 [▶] //element1
1 => array:2 [▶] //element2
2 => array:2 [▶] //element3
3 => array:2 [▶] //element4
]
]
}
有什么办法吗?
我使用的是 Laravel 5.3 版本,我不知道在这种情况下使用那个收集过滤器。
您可以使用pluck()
方法:
$plucked = $collection->pluck('elements');
The pluck method retrieves all of the values for a given key.
看看pluck()
方法。
你可以这样使用它:
$collection->pluck('field');
您可以使用 laravel 的 pluck()
方法从集合中获取选定的键,如下所示:
$plucked_items = $collection->pluck('elements'); // returns a collection
$plucked_items_arr = $plucked_items->all(); // returns an array
希望对您有所帮助!
我有这个 Laravel 集合,其中包含一些字段:
Collection {#324 ▼
#items: array:3 [▼
0 => array:5 [▼
"img_src" => "http://newregalospersonales.dev/./svg/regalos-personalizados-gift.svg"
"img_alt" => "<span>Regalos</span> originales"
"class" => "personalised-gifts"
"elements" => array:4 [▼
0 => array:2 [▶]//element1
1 => array:2 [▶]//element2
2 => array:2 [▶]//element3
3 => array:2 [▶]//element4
]
]
1 => array:5 [▼
"img_src" => "http://newregalospersonales.dev/./svg/love-gifts.svg"
"img_alt" => "<span>Regalos</span> románticos"
"class" => "love-gifts"
"elements" => array:4 [▼
0 => array:2 [▶]//element1
1 => array:2 [▶]//element2
2 => array:2 [▶]//element3
3 => array:2 [▶]//element4
]
]
2 => array:5 [▼
"img_src" => "http://newregalospersonales.dev/./svg/regalos-ocasiones-especiales.svg"
"img_alt" => "<span>Detalles</span><br>de boda"
"class" => "wedding"
"elements" => array:4 [▼
0 => array:2 [▶]//element1
1 => array:2 [▶]//element2
2 => array:2 [▶]//element3
3 => array:2 [▶]//element4
]
]
]
}
而且我只得到字段为 'elements' 的集合。
我想要这样的结果:
Collection {#324 ▼
#items: array:3 [▼
0 => array:4 [▼
0 => array:2 [▶] //element1
1 => array:2 [▶ //element2
2 => array:2 [▶] //element3
3 => array:2 [▶] //element4
]
1 => array:4 [▼
0 => array:2 [▶] //element1
1 => array:2 [▶] //element2
2 => array:2 [▶] //element3
3 => array:2 [▶] //element4
]
2 => array:4 [▼
0 => array:2 [▶] //element1
1 => array:2 [▶] //element2
2 => array:2 [▶] //element3
3 => array:2 [▶] //element4
]
]
}
有什么办法吗? 我使用的是 Laravel 5.3 版本,我不知道在这种情况下使用那个收集过滤器。
您可以使用pluck()
方法:
$plucked = $collection->pluck('elements');
The pluck method retrieves all of the values for a given key.
看看pluck()
方法。
你可以这样使用它:
$collection->pluck('field');
您可以使用 laravel 的 pluck()
方法从集合中获取选定的键,如下所示:
$plucked_items = $collection->pluck('elements'); // returns a collection
$plucked_items_arr = $plucked_items->all(); // returns an array
希望对您有所帮助!