阅读(3114) (0)

Laravel 8 collect() {#collection-method}

2021-07-01 14:27:49 更新

collect 方法返回一个包含当前集合所含元素的新的 Collection 实例:

$collectionA = collect([1, 2, 3]);

$collectionB = $collectionA->collect();

$collectionB->all();

// [1, 2, 3]

collect 方法主要用于将 懒集合 转换为标准的 Collection 实例:

$lazyCollection = LazyCollection::make(function () {
    yield 1;
    yield 2;
    yield 3;
});

$collection = $lazyCollection->collect();

get_class($collection);

// 'Illuminate\Support\Collection'

$collection->all();

// [1, 2, 3]

技巧:当你有个 Enumerable 实例并需要一个非懒集合实例时,collect 方法相当有用。由于 collect()Enumerable 契约的一部分,你可以安全地使用它以获取一个 Collection 实例。