我有一个集合(例如有10个元素),我想用另外两个元素组成另一个元素集合,其中id为5和6.类似的东西:
$newCollection = $collection->get([5,6]);
$ collection是Illuminate\Database\Eloquent\Collection
的一个实例。
但我当然得到错误:
第一个参数应该是字符串或整数
我知道我可以用循环或闭合来制作它,如果有更优雅的方式我只是徘徊。在文档中找不到这样的东西。这是laravel 5。
由于
答案 0 :(得分:1)
也许使用过滤器,假设这些是id值:
$idList = [5,6];
$newCollection = collection->filter(
function($value) use ($idList) {
if (in_array(value->id, $idList) {
return true;
}
}
);
答案 1 :(得分:1)
您只能使用Collection ::。
例如:
$collection->only([5, 6]);
请注意,它会查看属性主键以了解要使用的键。例如,如果返回数据库集合,$collection->primaryKey
很可能是'id'。
答案 2 :(得分:0)
简单,使用whereIn()
$newCollection = $collection->whereIn('id', [5, 6])->get();
或强>
直接使用雄辩的模型:
$newCollection = Collection::whereIn('id', [5, 6])->get();