Как получить общую звезду определенного типа поста - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть разные типы постов, под которыми пользователи могут оставлять отзывы, например: -

Типы постов: -

  1. Автомобили
  2. ТВ

Пользователь 1: - пишет отзыв под типом автомобиля и присваивает ему 5 звезд.

Пользователь 2: - также пишет отзыв подтот же тип сообщения, дающий звезду 3 и т. д.

пользователь 3: - Пишет рецензию под ТВ и дает звезду 3 и т. д.

Мне нравится получать средние звезды постаТип автомобилей и отображение под типом автомобиля, а также средние звезды ТВ и отображение под ТВ.У кого-нибудь есть идеи о том, как получить правильные суммарные звезды?Любое предложение будет полезно

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


     $getposttypes  = Posttype::Join('categories','posttypes.category_id','=','categories.id')
      ->select('posttypes.id','posttypes.name','posttypes.slug','categories.name as categoryname','posttypes.created_at','posttypes.updated_at')->get();

      foreach ($getposttypes as $key) {
        $posts []=Post::Where('posttype_id',$key['id'])->get();
        foreach ($posts as $postkey) {
          foreach ($postkey as $keyval) {
            if($keyval['posttype_id'] ==$key['id']){
              $poststars [] = $keyval['rating'];
            }
          }
        }
      }

1 Ответ

0 голосов
/ 20 сентября 2019

Вот запрос, который может вам помочь.

Исходя из вашего объяснения, что.«Posttype» содержит «Cars» и «TV».& "Post" содержит все оценки.

Создайте функцию публикации в Posttype Model

function post() {
    return $this->hasMany(Post::class, 'posttype_id', 'id');
}

& Напишите этот запрос, чтобы получить средний результат по каждому типу записи.

$post_types = Posttype::with(['post' => function($query){
    $query->avg('rating');
}])->get();

Дайте мне знать, если вы обнаружите какие-либо проблемы с этим решением.

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