gpt4 book ai didi

php - Laravel Eloquent 更新列使用关系列

转载 作者:行者123 更新时间:2023-12-04 02:32:49 24 4
gpt4 key购买 nike

如何实现这个查询?

Sale::with(['catalog'])
->whereIn('id', $ids)
->update(['price' => DB::raw('catalog.price')]);

这不起作用,它显示未定义的表...我尝试输入表的名称,但它是一样的。

在互联网上,我总能找到简单的查询:

Sale::with(['catalog'])
->whereIn('id', $ids)
->update(['price' => 5]);

好的!当我想用相同的值更新所有行时很容易,另外当你想用同一个表的列更新时也很容易:

Sale::with(['catalog'])
->whereIn('id', $ids)
->update(['price' => DB::raw('price_alternative')]);

但是如何使用具有关系的另一个表的列呢?我还没有找到解决方案。

我知道这可以使用整个原始查询来解决,但我想知道它是否可以通过 Eloquent 方式来实现

最佳答案

您可能需要在查询构建器上加入 catalog 表。这与使用 with() 不同。类似的东西

Sale::whereIn('id', $ids)
->join('catalog', 'sales.catalog_id', '=', 'catalog.id')
->update(['price' => DB::raw('catalog.price')]);

关于php - Laravel Eloquent 更新列使用关系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63187429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com