怎么才能實現(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]);好的!當我想要更新具有相同值的所有行時很容易,此外當您想要使用同一個表的列進行更新時也很容易,例如:Sale::with(['catalog']) ->whereIn('id', $ids) ->update(['price' => DB::raw('price_alternative')]);但是如何使用另一個具有關(guān)系的表的列呢?我還沒有找到解決方案。我知道這可以使用整個原始查詢來解決,但我想知道是否可以通過雄辯的方式來實現(xiàn)
2 回答

哆啦的時光機
TA貢獻1779條經(jīng)驗 獲得超6個贊
您可能需要加入catalog
查詢構(gòu)建器上的表。這與使用不同with()
。類似的東西
Sale::whereIn('id', $ids) ->join('catalog', 'sales.catalog_id', '=', 'catalog.id') ->update(['price' => DB::raw('catalog.price')]);

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
這并不比@Qirel 的答案更好,但這是雄辯的方式,我喜歡這個,因為這更清楚。
$Sales = Sale::whereIn('sales.id', $ids)
->with('Cat')->get();
$Sales->map(function($q){
$q->price = $q->Cat->price;
$q->save();
});
假設您在銷售模型中有以下關(guān)系代碼:
public function Cat()
{
return $this->hasOne(CatModel::class, 'id', 'catalog_id');
}
- 2 回答
- 0 關(guān)注
- 237 瀏覽
添加回答
舉報
0/150
提交
取消