Как получить сумму во вложенном массиве, в красноречивом laravel? - PullRequest
0 голосов
/ 22 апреля 2019

Как я могу получить сумму всех результатов оценок по отзывам массива в красноречивом laravel?

Я пробовал так:

PublicController.php

public function products()
{
    $products = Product::select('id', 'name', 'slug', 'image', 'new', 'offer', 'featured', 'cash_price', 'special_price')
        ->where('status', true)
        ->withCount(['reviews'])
        ->with(['reviews' => function($query){
            $query->select('product_id', 'rating');
            $query->sum('rating'); //<-- dont show anything
        }])
        ->get();
    return response()->json($products, 200);
}

и мой результат в формате json:

[
  {
    "id": 1,
    "name": "Peggie Rodriguez",
    "slug": "peggie-rodriguez",
    "image": "https://lorempixel.com/200/200/?43622",
    "new": 1,
    "offer": 1,
    "featured": "Exercitationem eum praesentium soluta placeat. Ut praesentium non dolorem a et libero. Optio corporis est assumenda aut.",
    "cash_price": 80464,
    "special_price": 10598,
    "reviews_count": 3,
    "reviews": [
      {
        "product_id": 1,
        "rating": 1
      },
      {
        "product_id": 1,
        "rating": 2
      },
      {
        "product_id": 1,
        "rating": 5
      }
    ]
  },
]

Мой ожидаемый результат - это сумма всех значений рейтинга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...