表:
礼物:身份证,姓名
用户:id,name
GiftUser:gift_id,user_id,count
在GiftUser模型中,我已经有了这一行
date drawdate msisdn tickets play_type
2018-02-16 2018-02-16 3xxxxxxxxxxxx 1 On-Demand
2018-02-16 2018-02-16 3xxxxxxxxxxxx 1 On-Demand
2018-02-16 2018-02-16 3xxxxxxxxxxxx 1 Subscription
2018-02-16 2018-02-16 3xxxxxxxxxxxx 1 Subscription
2018-02-19 2018-02-19 3xxxxxxxxxxxx 1 On-Demand
2018-02-20 2018-02-20 3xxxxxxxxxxxx 1 On-Demand
2018-02-20 2018-02-20 3xxxxxxxxxxxx 1 Subscription
2018-02-20 2018-02-20 3xxxxxxxxxxxx 2 On-Demand
在迁移播种机中:
public $timestamps = false;
此foreach是添加gift_user记录。对于每件礼物,如果用户没有,请添加新记录。如果用户已有礼物,请计算+1。
但是在执行播种机时,它说
foreach ($all_gifts as $key => $gift) {
$gift_user = GiftUser::where('gift_id', $gift['id'])->where('user_id', $user->id)->first();
if(empty($gift_user)){
$user->gifts()->attach($gift['id'], ['count' => 1]);
}else{
$user->gifts()->updateExistingPivot($gift, ['count' => ($gift_user->count+1)]);
}
}
当两列created_at和updated_at存在时,没关系 但现在我不想要那两个专栏。
我猜,当使用attach()和updateExistingPivot()时,似乎没有使用GiftUser模型,对吧?如何解决?
答案 0 :(得分:0)
出错了,所以我的答案不是解决方案,只是一个快速修复(可能)
尝试在模型中保护这些字段:
protected $guarded = ['created_at', 'updated_at'];