如何在 Laravel 4 中手动创建新的空 Eloquent Collection

2022-08-30 09:01:08

如何在 Laravel 4 中创建新的 Eloquent 集合,而无需使用查询生成器?

有一种方法可以被覆盖,它并没有真正完成工作,因为它仅在我们查询设置的结果时才使用。newCollection()

我正在考虑建立一个空的集合,然后用雄辩的对象填充它。我不使用数组的原因是因为我喜欢雄辩集合方法,例如.contains

如果还有其他选择,我很想听听。


答案 1

这并不是真正的雄辩,要将雄辩模型添加到您的收藏中,您有一些选择:

Laravel 5中,您可以从助手中受益

$c = collect(new Post);

$c = collect();
$c->add(new Post);

老拉拉维尔 4 答案

$c = new \Illuminate\Database\Eloquent\Collection;

然后你可以

$c->add(new Post);

或者你可以使用 make:

$c = Collection::make(new Post);

答案 2

截至Laravel 5。我使用全局函数collect()

$collection = collect([]); // initialize an empty array [] inside to start empty collection

这个语法非常干净,如果你不需要数字索引,你也可以添加偏移量,就像这样:

$collection->offsetSet('foo', $foo_data); // similar to add function but with
$collection->offsetSet('bar', $bar_data); // an assigned index

推荐