gpt4 book ai didi

php - 播种 - 具有 3 级关系的 Laravel 模型工厂

转载 作者:行者123 更新时间:2023-12-04 07:50:12 28 4
gpt4 key购买 nike

我目前正在构建一个系统来管理我的出租属性(property)。我有一个持有属性(property)的模型,每个属性(property)都可以有很多租约。
为了对租赁进行计费,我有一个名为 Invoice 的模型。属于Lease .此外,一张发票会有很多InvoiceLine

//Property.php
public function leases()
{
return $this->hasMany(Lease::class);
}

//Lease.php
public function invoices(){
return $this->hasMany(Invoice::class);
}

//Invoice.php
public function lines()
{
return $this->hasMany(InvoiceLine::class);
}
我正在尝试为此设置设置种子:
Property::factory()
->count(1)
->has(
Lease::factory()
->count(2)
->hasInvoices(1) // Where to create "Invoice Lines"?
)
->create();
现在,如您所见,在运行此播种时,我只创建发票 - 但没有发票行。
如何生成发票 带发票行 属于 Lease ?
作为引用,这是工厂类查找 Invoice 和 Invoice Line 的方式:
//InvoiceFactory.php
return [
'tax' => 0,
'total' => 25000,
];
//InvoiceLineFactory.php
return [
'description' => 'Rent for April',
'tax' => 0,
'total' => 25000,
];

最佳答案

您可以简单地使用 has而不是 hasInvoices .

Property::factory()->has(
Lease::factory()->has(
Invoice::factory()->has(
InvoiceLine::factory()->count(3),
)->count(1)
)->count(2)
)->count(1)->create();

关于php - 播种 - 具有 3 级关系的 Laravel 模型工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67025787/

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