首页 > 解决方案 > Laravel 雄辩:用关系保存数据

问题描述

我创建了一个发票表单,其中有一个部分,用户可以在其中动态添加(通过 jquery 行添加)要开票的项目。我需要将这些数据保存到两个表中:Invoice and Invoiceitems. 这两个表具有one to many通过 MySQL 的关系,而 Laravel 模型具有hasManybelongsTo分配了关系。

我的问题是如何将数据保存到Invoiceitems表中。

标签: mysqllaravel

解决方案


在您的App\Invoice中,定义您的关系App\InvoiceItem如下:

public function items()
{
    return $this->hasMany(InvoiceItem::class); 
}

在您的App\InvoiceItem模型中,定义您的关系App\Invoice如下:

public function invoice()
{
    return $this->belongsTo(InvoiceItem::class); 
}

要创建包含许多 InvoiceItem 的 Invoice,您可以执行以下操作:

$invoice->items()->saveMany([
    new App\InvoiceItem(['title' => 'iPhone X']),
]);

阅读更多关于雄辩的关系


推荐阅读