Laravel自定义属性影响数据插入数据库

我已经创建了自定义属性,以便可以直接在刀片文件中访问它们,并且效果很好,但是在我的数据库中进行测试时,它会产生QLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list'错误。这是在模型中插入自定义属性的步骤:

protected $fillable = [
    'room_name','room_code',];

protected $dates = [
    'created_at','updated_at'
];

protected $attributes = ['room_total_booking','room_complete_booking'];

public function getRoomTotalBookingAttribute($id){
    return \App\Models\Guest\BookingDetail::where('room_list_id',$id)->count();
}

public function getRoomCompleteBookingAttribute($id){
    return \App\Models\Guest\BookingDetail::where('room_list_id',$id)->whereReservationStatus(1)->count();
}

但是当我注释掉属性时,它会很好地工作。这是完整的错误:

  

SQLSTATE [42S22]:找不到列:1054'字段列表'中的未知列'0'(SQL:插入room_lists01,{{1} },room_nameroom_codeupdated_at)值(room_total_booking,room_complete_booking,Test2,Test101、2019-11-05 11:00:16、2019-11-05 11:00: 16))

保存到数据库

created_at

如果可以看到,我声明的自定义属性位于 $room = []; $room['room_name'] = $data['room_name']; $room['room_code'] = $data['room_code']; $rtn = $this->roomList->create($room); 字段中。有人可以帮我解决这个问题吗?

hbfym 回答:Laravel自定义属性影响数据插入数据库

好的。得到它了。我用append代替了attributes

protected $append = ['room_total_booking','room_complete_booking'];

现在它解决了我的问题。

本文链接:https://www.f2er.com/3160194.html

大家都在问