SQLSTATE [HY000]:常规错误:1364字段“ reservation_id”没有默认值

时间:2019-08-06 03:24:20

标签: php mysql laravel laravel-5.8

我无法遍历我的代码。我收到错误消息,指出“ reservation_id ”没有默认值。 表 reservation_participate_details 的此 reservation_id 是父表 reservation 的ID列中的外键。我想知道是否与 hasMany belongsTo 有关。我还不太熟悉laravel。

预订表应该在 reservation_participate_details 中/具有很多行。该过程之前是有效的,但是当我将 reservation_participate_details 的列(reservation_participate_id)更改为Reservation_id并将其指向 reservation 列的 id 的外键时strong>,现在无法正常工作。

我试图放

    public function participateDetail()
    {
        return $this->hasMany('App\ReservationParticipateDetail');
    }

进入预订(父)表和

    public function reservation()
    {
        return $this->belongsTo('\App\Reservation');
    }

进入 reservation_participate_detail

我只需要将参加者详细信息保存到 reservation_participate_details 中。同样,预订表具有许多 reservation_participate_details

1 个答案:

答案 0 :(得分:1)

由于您已更改了外键列的名称(未遵循laravel默认约定),因此需要在关系函数中定义这些列的名称。

预订模式

public function participateDetail()
{
    return $this->hasMany('App\ReservationParticipateDetail', 'reservation_id', 'id');
}

预订参与详细信息模型

public function reservation()
{
    return $this->belongsTo('\App\Reservation', 'reservation_id', 'id');
}