【发布时间】:2018-06-25 19:20:03
【问题描述】:
我想知道如何在使用属于多个关系时将数据插入数据透视表我现在可以从数据库中读取数据但我不知道如何将数据存储在数据库和我的 invoice_product 表中这里是代码 发票型号:
class Invoice extends Model
{
protected $fillable = ['title','description','client_id','product_id'];
public function user() {
return $this->hasOne('App\Client','id','client_id');
}
public function products()
{
return $this->belongsToMany('App\Product', 'invoice_product', 'invoice_id')
->withPivot('product_quantity')
->as('invoice_products_pivot');
}
}
发票控制人:
public function store(Request $request)
{
//Validate
$request->validate([
'title' => 'required|min:3',
'description' => 'required',
]);
$invoices = Invoice::create([
'title' => $request->title,
'description' => $request->description,
'client_id' => $request->client_id,
'product_id' => $request->product_id,
]);
return redirect('admin/invoices/' . $invoices->id);
}
这会将发票存储到发票表中,但我想获取 client_id 和 product_id 或 ids,因为它必须是多个产品并将它们保存到 invoice_product 表中,迁移在此处
public function up()
{
Schema::create('invoice_product', function (Blueprint $table) {
$table->increments('id');
$table->integer('client_id');
$table->integer('product_id');
$table->integer('product_quantity');
$table->timestamps();
});
}
【问题讨论】:
-
我在这里写了一个关于这个的答案:https://stackoverflow.com/a/33552055/2131039