Дополнительные данные в foreach - PullRequest
0 голосов
/ 25 сентября 2018

В моей функции показа, в которой вы можете наблюдать за каждой группой, я загружаю все статьи с одинаковыми тегами.И статья с наибольшим количеством голосов будет отображаться отдельно вверху.Кроме того, я указываю средний рейтинг предметов в этой группе.Вот как выглядит моя функция:

public function show($id)
    {
        $group = group::find($id);

            $tagIdArray = $group->tags->pluck('id')->all();

            $mostvotedarticle = Article::where('type', 4)->whereIn('privacy', [1, 3])
                ->whereHas('tags', function($query) use ($tagIdArray) {
                    $query->whereIn('tags.id', $tagIdArray);
                }, '>=', count($tagIdArray))
                ->orderByVotes()->first();

            $articledown = Article::where('status', 1)->whereHas('tags', function($query) use ($tagIdArray) {
                $query->whereIn('tags.id', $tagIdArray);
            }, '>=', count($tagIdArray))->downVotesAll()->count();

            $articleup = Article::where('status', 1)->whereHas('tags', function($query) use ($tagIdArray) {
                $query->whereIn('tags.id', $tagIdArray);
            }, '>=', count($tagIdArray))->upVotesAll()->count();

            $ratio = null;

            if($articleup + $articledown == 0) {
                $ratio = 0;
            } else {
                $ratio = ($articleup*100)/($articleup + $articledown);
            }

        return view('singlegroup',compact('groups','mostvotedarticle', 'ratio'));
    }

На странице обзора отдельные группы отображаются с циклом foreach:

@foreach ($groups as $group)
        {{$group->name}}                      
        <img src="-----load mostvotedarticle that is in this group------" alt="" />
        <div class="progress-bar-primary" style="width:{{$ratio}}%;">
@endforeach

Как получить рейтинг наиболее часто оцениваемых статей и группотображается в цикле foreach?

Это моя предыдущая индексная функция:

public function index()
    {
        $user = Auth::user();
        $groups = $user->groups()->latest()->with('tags')->paginate(20);

        return view('groups', compact('groups'));
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...