gpt4 book ai didi

Laravel:collect() 助手 - 设置集合类型

转载 作者:行者123 更新时间:2023-12-05 01:41:48 30 4
gpt4 key购买 nike

如果我这样做:

$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 收藏。

最佳答案

collect() 助手只是创建一个新的 Illuminate\Support\Collection 实例。

function collect($value = null)
{
return new Collection($value);
}

您可以对任何集合执行相同的操作。

Illuminate\Database\Eloquent\Collection

$collection = new Illuminate\Database\Eloquent\Collection($value);

App\Models\CustomCollection

$collection = new \App\Models\CustomCollection($value);

关于Laravel:collect() 助手 - 设置集合类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53428371/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com