我试图渴望加载一个关系:

$tournaments = Tournament::with('numCompetitors')->latest()->paginate(config('constants.PAGINATION'));

我在锦标赛中的关系返回一个整数:
public function numCompetitors()
{
    return $this->competitors()->count(); // it returns 24
}

这样我得到:
Call to a member function addEagerConstraints() on integer

我不明白为什么会失败。

最佳答案

你这样做是错的。如果要计算关系,请使用具有正确定义的关系的 withCount() :

Tournament::withCount('competitors')->latest()->paginate(config('constants.PAGINATION'));



https://laravel.com/docs/5.4/eloquent-relationships#counting-related-models

10-08 07:09