コード例 #1
0
 public function collections(Collection $collection, Guard $guard)
 {
     $collections = $collection->with(['votes' => function ($query) {
         $query->select('collection_user_vote.vote', 'collection_user_vote.user_id');
     }, 'user' => function ($query) {
         $query->select('users.id', 'users.name');
     }, 'blueprints' => function ($query) {
         $query->select('blueprint.id', 'blueprint.name');
     }])->paginate(8);
     $collectionsAsArray = $collections->toArray()['data'];
     foreach ($collectionsAsArray as $key => $value) {
         if (!empty($value['votes'])) {
             $totalVotes = 0;
             foreach ($value['votes'] as $vote) {
                 // get total number of votes
                 $totalVotes += $vote['vote'];
                 // check if the current user has voted
                 if ($guard->check()) {
                     if ($vote['user_id'] == $guard->user()->getAuthIdentifier()) {
                         $collectionsAsArray[$key]['user_has_voted'] = true;
                         $collectionsAsArray[$key]['user_vote'] = $vote['vote'];
                     }
                 }
             }
             $collectionsAsArray[$key]['total_votes'] = $totalVotes;
         } else {
             $collectionsAsArray[$key]['user_has_voted'] = false;
             $collectionsAsArray[$key]['total_votes'] = 0;
         }
     }
     return view('buildcraft.collections')->with(['collections' => $collections, 'collectionsAsArray' => $collectionsAsArray]);
 }