Laravel雄辩地阐述了我如何从查询中包括排除计算的附加字段



我有一个运行正常的代码:

class Basket extends Model
{
use HasFactory;
...
protected $appends = [
...
'price'
];
....
public function getPriceAttribute($value){
... some heavy computing
return $totalPrice;
}

但我看到的是,价格的计算将被执行,例如,当我调用时

Basket::all();

我想避免

只有当我做一个Basket::find(id(时,我才想要它。

到目前为止,我还没有找到如何避免雄辩地跳过或不跳过getPriceAttribute

有什么想法吗?

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

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

它需要像下面的一样附加在控制器中

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

最新更新