iat*_*nut 2 phpunit laravel laravel-collection
如果我这样做:
$obj = factory(Object::class)->make();
collect($obj);
Run Code Online (Sandbox Code Playgroud)
我返回了一个类型的集合:
Illuminate\Support\Collection
Run Code Online (Sandbox Code Playgroud)
Laravel 还允许您使用特定方法定义自己的集合。在模型中,您执行以下操作:
public function newCollection(array $models = [])
{
return new CustomCollection($models);
}
Run Code Online (Sandbox Code Playgroud)
你会CustomCollection在文件 CustomCollection.php 中创建你的,像这样开始:
class CustomCollection extends Collection
{
Run Code Online (Sandbox Code Playgroud)
我想知道如何返回类型的集合:
Illuminate\Database\Eloquent\Collection
Run Code Online (Sandbox Code Playgroud)
或者,在创建我自己的自定义集合的情况下,我怎么能返回一个类型的集合:
App\Models\CustomCollection
Run Code Online (Sandbox Code Playgroud)
我想用 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);
}
Run Code Online (Sandbox Code Playgroud)
您可以对任何集合执行相同的操作。
Illuminate\Database\Eloquent\Collection
$collection = new Illuminate\Database\Eloquent\Collection($value);
Run Code Online (Sandbox Code Playgroud)
应用\模型\自定义集合
$collection = new \App\Models\CustomCollection($value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1568 次 |
| 最近记录: |