首页 > 解决方案 > Laravel 完整性约束违规:1048 列“submitform_id”在多对多关系中不能为空

问题描述

我收到一个错误:

违反完整性约束:1048 列“submitform_id”不能为空

我试图在请求中fisherman使用插入数组数据Insomnia/PostmanPOST

SubmitForm模型

public function fisherman()
{
  return $this->belongsToMany(Fisherman::class, 'submitform_fisherman','submitform_id', 'fisherman_id');
}

Fisherman模型

public function submitForm()
    {
        return $this->belongsToMany(SubmitForm::class,'submitform_fisherman','fisherman_id', 'submitform_id');
    }

SubmitForm控制器

$sf = new SubmitForm;
$sf->price_per_kg = $request->price_per_kg;
$sf->fisherman()->sync($request->fisherman, false);
if ($sf->save()) {
  return $this->responseSuccess("OK");
}

我想插入许多fisherman_id相同的submitform_id.

标签: phplaravelmany-to-many

解决方案


您必须先保存fisherman模型。见下文:

$sf = new SubmitForm;
$sf->price_per_kg = $request->price_per_kg;

if ($sf->save()) {
    $sf->fisherman()->sync($request->fisherman, false);

    return $this->responseSuccess("OK");
}

希望能帮助到你!


推荐阅读