laravel-5 - Laravel 自定义属性影响数据插入到 db
问题描述
我创建了自定义属性,以便我可以直接在刀片文件中访问它们并且它运行良好,但是在我的数据库中进行测试期间,它是给出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_lists
(0
,,,,,,,)值(room_total_booking1
, room_complete_bookingroom_name
, Test2room_code
,Test101,2019-11-05 11:00 :16, 2019-11-05 11:00:16))updated_at
created_at
保存到数据库
$room = [];
$room['room_name'] = $data['room_name'];
$room['room_code'] = $data['room_code'];
$rtn = $this->roomList->create($room);
如果您可以看到,我声明的自定义属性在value
字段中。有人可以帮我解决这个问题吗?
解决方案
好的。知道了。我用append
而不是attributes
protected $append = ['room_total_booking', 'room_complete_booking'];
现在它解决了我的问题。
推荐阅读
- class - vuejs:如何更改 v-for 中每个项目的类
- python - Python 3.x:打印特定的数组项
- linux - linux shell变量到aws命令错误
- react-native - 如何在 RN FlatList 中使用图像延迟加载
- sql-server - SQL-计算时间差的平均值
- laravel - 使用 laravel 提交表单后需要调用该函数
- android - Google Play - 通过 Alpha、Beta 和生产渠道审核流程
- angular - TypeError:无法读取 null 的属性“令牌”
- sql - 按非固定时间间隔查询分组
- sql - T-SQL - 带有前导零的 CAST char 到 int