怎么才能實(shí)現(xiàn)這個查詢呢?Sale::with(['catalog']) ->whereIn('id', $ids) ->update(['price' => DB::raw('catalog.price')]);這不起作用,它顯示未定義的表...我嘗試輸入表的名稱,但它是相同的。在互聯(lián)網(wǎng)上我總是找到簡單的查詢:Sale::with(['catalog']) ->whereIn('id', $ids) ->update(['price' => 5]);好的!當(dāng)我想要更新具有相同值的所有行時很容易,此外當(dāng)您想要使用同一個表的列進(jìn)行更新時也很容易,例如:Sale::with(['catalog']) ->whereIn('id', $ids) ->update(['price' => DB::raw('price_alternative')]);但是如何使用另一個具有關(guān)系的表的列呢?我還沒有找到解決方案。我知道這可以使用整個原始查詢來解決,但我想知道是否可以通過雄辯的方式來實(shí)現(xiàn)
2 回答
哆啦的時光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個贊
您可能需要加入catalog查詢構(gòu)建器上的表。這與使用不同with()。類似的東西
Sale::whereIn('id', $ids)
->join('catalog', 'sales.catalog_id', '=', 'catalog.id')
->update(['price' => DB::raw('catalog.price')]);
慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個贊
這并不比@Qirel 的答案更好,但這是雄辯的方式,我喜歡這個,因?yàn)檫@更清楚。
$Sales = Sale::whereIn('sales.id', $ids)
->with('Cat')->get();
$Sales->map(function($q){
$q->price = $q->Cat->price;
$q->save();
});
假設(shè)您在銷售模型中有以下關(guān)系代碼:
public function Cat()
{
return $this->hasOne(CatModel::class, 'id', 'catalog_id');
}
- 2 回答
- 0 關(guān)注
- 273 瀏覽
添加回答
舉報
0/150
提交
取消
