【发布时间】:2019-04-24 23:38:20
【问题描述】:
如果我这样做:
$obj = factory(Object::class)->make();
collect($obj);
我返回了一个类型的集合:
Illuminate\Support\Collection
Laravel 还允许您使用特定方法定义自己的集合。在模型中,您可以:
public function newCollection(array $models = [])
{
return new CustomCollection($models);
}
你会在文件 CustomCollection.php 中创建你的CustomCollection,像这样开始:
class CustomCollection extends Collection
{
我想知道如何返回一个类型的集合:
Illuminate\Database\Eloquent\Collection
或者,在创建我自己的自定义集合的情况下,我如何返回一个类型的集合:
App\Models\CustomCollection
我想使用 collect() 帮助程序或任何其他我不访问数据库以编写 PHPUnit 测试的方式来执行此操作。
===========
编辑:我正在使用 factory(Object::class)->make() 来欺骗 Eloquent 对象,我试图将这些对象放入集合中。
如果您只使用 factory(Object::class, 1)->make(),工厂会为您将 Object::class 的单个实例滚动到 Eloquent 集合中。
【问题讨论】:
标签: laravel phpunit laravel-collection