检查授权用户是否已投票然后计算民意调查?

Check if auth user has voted and then take count of polls?

我遇到了一个阻碍我前进的问题。

到目前为止,我已尝试获取民意调查计数,如下所示:

 public function user_dashboard(){

        $activepolls = DB::table('larapoll_polls')
                ->selectRaw('count(*) As total')
                ->join('larapoll_options', 'larapoll_polls.id', '=', 'larapoll_options.poll_id')
                ->join('larapoll_votes', 'larapoll_votes.option_id', '=', 'larapoll_options.id')
                ->where('larapoll_votes.user_id', auth()->user()->id)
                ->count();

        return view('user_dashboard',compact('activepolls'));
    }

截至目前,我认为以下功能会对我有所帮助,但我不确定。

public function hasVoted($poll_id)
    {
        $poll = Poll::findOrFail($poll_id);

        if ($poll->canGuestVote()) {
            $result = DB::table('larapoll_polls')
                ->selectRaw('count(*) As total')
                ->join('larapoll_options', 'larapoll_polls.id', '=', 'larapoll_options.poll_id')
                ->join('larapoll_votes', 'larapoll_votes.option_id', '=', 'larapoll_options.id')
                ->where('larapoll_votes.user_id', auth()->user()->id)
                ->where('larapoll_options.poll_id', $poll_id)->count();
            return $result !== 0;
        }

        return $this->options()->where('poll_id', $poll->id)->count() !== 0;
    }

只是我在我的网站上做了一个投票框,我想在那个框的右上角显示投票数。

  1. 我需要用户未投票的民意调查计数。
  2. 如果用户在民意调查中投票,它也应该从计数中删除。

如果有人能提供帮助,将不胜感激..

谢谢..

我已经通过以下代码解决了问题...

$activepolls = DB::table('larapoll_polls')
                ->selectRaw('count(*) As total')
                ->join('larapoll_options', 'larapoll_polls.id', '=', 'larapoll_options.poll_id')
                ->join('larapoll_votes', 'larapoll_votes.option_id', '=', 'larapoll_options.id')
                ->where('larapoll_votes.user_id', auth()->user()->id)
                ->count();

$polls = Poll::count();

$unvotedpolls = ($polls - $activepolls);

在 ($unvotedpolls) 中,我得到了 auth 用户未投票的民意调查计数...