gpt4 book ai didi

php - 在字符串上调用成员函数 addEagerConstraints()

转载 作者:行者123 更新时间:2023-12-04 10:41:54 33 4
gpt4 key购买 nike

我想计算嵌套变形关系列的平均值。

模型功能

public function trader_ratings()
{
return $this->morphMany(TraderRatings::class, 'rateable')
->select('rateable_id', 'rateable_type', 'rating')
->avg('rating');
}
延迟加载 Controller
$user = auth('api')->user();
$user_id = $user->id;
$customer_classes = CustomerClassBooking::with([
'trader_class',
'trader_class.trader_ratings',
'vendor',
])
->where('customer_id', $user_id)
->where('status', 'Accepted-paid')
->get();
它不计算 avg但给出错误。

最佳答案

因为 with()需要得到关系。 addEagerConstraints来自源代码。当您使用预先加载时,您的关系构建器将调用 addEagerConstraints .

但是,您的关系方法是返回字符串( avg() 的结果)而不是变形关系。所以出现错误。

您可以更改您的方法,例如:

public function trader_ratings()
{
return $this->morphMany(TraderRatings::class, 'rateable')->select('*', DB::raw('AVG(rating) AS avg_rating'));
}

关于php - 在字符串上调用成员函数 addEagerConstraints(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59897448/

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