2017-05-10 27 views
2

に私は熱心な負荷に関連してみました:大会でコール()整数

$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 

なぜ失敗するのか分かりません。

答えて

3

あなたは間違っています。あなたが関係をカウントしたい場合は、適切に定義された関係でwithCount()を使用します。

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

あなたが実際にあなたが配置しますwithCount方法を、使用することができ、それらをロードすることなく関係からの結果の数をカウントしたい場合結果のモデルの{relation}_count

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

+1

グレート!まさに私が忘れたもの! Tx! –