Laravel eloquent 如何从查询中排除计算附加字段?

Laravel eloquent how do I include exclude from a query a computed appended field?

我有这个代码 运行 没问题:

class Basket extends Model
{
use HasFactory;

...

protected $appends = [
    ...
    'price'
];

....
public function getPriceAttribute($value){
    ... some heavy computing
    return $totalPrice;
}

但我看到的是价格的计算将被执行,例如当我打电话时

Basket::all();

这是我想避免的事情

我只在每次输入 Basket::find(id) so 时才需要它。

到目前为止我还没有找到如何避免 eloquent 跳过或不跳过 getPriceAttribute

有什么想法吗?

创建访问器后,将值添加到模型上的追加 属性:

protected $appends = [
    ...
    'price'
];

需要像下面这样附加到控制器中

$basket = Basket::find($request->id)->append('price');