使用WhereIn语句及其关系更新集合



我有如下更新集合的代码

Transaction::whereIn('id', $inProcessIds)
->update([
'transfer_status' => SaleTransaction::TRANSFER_STATUS_TRANSFERRED
]);

在交易中,我与另一型号有关联

public function sale_offer() {
return $this->hasOne('AppSaleOffer', '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_offersid来更新相关模型,然后更新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]) ;

最新更新