vanyahuk
@vanyahuk

Как правильно написать with с агрегатными функциями?

Есть 2 таблицы: products и reviews.

В products храниться информация о продукте, а в reviews - отзывы о нем.

И есть отношение:
public function rev()
    {
       return $this -> hasMany( Review::class )-> whereVerify(1);
    }


оно работает, все отлично, но, мне нужно посчитать само количество отзывов.

Когда делаю вот так
public function rev_count()
    {
       return $this -> hasMany( Review::class )-> whereVerify(1) -> count();
    }


и вывожу:

$product = Product::whereId(1)->first();

echo $product -> rev_count();


все работает, но мне нужно возвращать количество отзывов таким способом:

$product = Product::whereId(1) -> with('rev_count')->first() -> toJson();


в последнем вылетает ошыбка

[Symfony\Component\Debug\Exception\FatalThrowableError]     
  Call to a member function addEagerConstraints() on integer
  • Вопрос задан
  • 646 просмотров
Пригласить эксперта
Ответы на вопрос 2
Комментировать
muhammad_97
@muhammad_97
PHP-разработчик
https://laravel.com/docs/5.4/eloquent-relationships , раздел Counting Related Models
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы