如何解决使用WhereIn语句及其关系更新集合
我有如下代码更新集合
Transaction::whereIn('id',$inProcessIds)
->update([
'transfer_status' => SaleTransaction::TRANSFER_STATUS_TRANSFERRED
]);
在交易中,我与另一个模型有关
public function sale_offer() {
return $this->hasOne('App\SaleOffer','sale_offer_id','id');
}
我想做的是在更新交易记录时立即更新相关模型
这就是我想要做的
Transaction::whereIn('id',$inProcessIds)->with('sale_offer')
->update([
'transfer_status' => SaleTransaction::TRANSFER_STATUS_TRANSFERRED
'transaction.sale_offer => 1'
]);
或
Transaction::whereIn('id',$inProcessIds)->sale_offer()
->update([
'transfer_status' => SaleTransaction::TRANSFER_STATUS_TRANSFERRED
'transaction.sale_offer => 1'
]);
]);
解决方法
您可以通过从交易表中提取 sale_offers ID,然后更新sale_offer来更新相关模型:
$sale_offer_ids=Transaction::whereIn('id',$inProcessIds)->with('sale_offer')->pluck('sale_offer_id')->toArray();
然后更新销售报价:
SaleOffer::whereIn('id',$sale_offer_ids)->update(['amount_sent'=>$amount_sent]) ;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。