如何通过集合中的键数组获取元素?

时间:2015-03-18 12:15:28

标签: php laravel laravel-5

我有一个集合(例如有10个元素),我想用另外两个元素组成另一个元素集合,其中id为5和6.类似的东西:

$newCollection = $collection->get([5,6]);

$ collection是Illuminate\Database\Eloquent\Collection的一个实例。 但我当然得到错误:

  

第一个参数应该是字符串或整数

我知道我可以用循环或闭合来制作它,如果有更优雅的方式我只是徘徊。在文档中找不到这样的东西。这是laravel 5。

由于

3 个答案:

答案 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();