2016-09-26 7 views
0

最後の2つの行に文字列 'not'と等しい列answeredがあるかどうかを確認する必要があるクエリを作成する必要があります。Laravel - 最後の2つがどこに等しいか問い合わせる

$inactive = Answer::orderBy('created_at', 'desc') 
          ->where('answered', 'not') 
          ->where('player_id', $player->id) 
          ->where('quiz_id', $quiz->id) 
          ->take(2); 

if ($inactive) { 
       // The game was finished 
       $opponent = $quiz->getOpponent($player); 
       $quiz->status = 'finished'; 
       $quiz->save(); 

       Event::fire(new GameEvent(
        'quizFinished', 
        [ 
         $opponent->user, 
         $player->user, 
        ], 
        [] 
       )); 
      } 

しかし、もしループが、それはすべきではない場合でも、入力されているので、私が期待通りに動作していない:それは私のコントローラであればループするための条件です。あなたは

$inactive = Answer::orderBy('created_at', 'desc') 
          ->where('answered', 'not') 
          ->where('player_id', $player->id) 
          ->where('quiz_id', $quiz->id) 
          ->take(2) 
          ->get(); 

非常に小さなミスをした

答えて

0
$inactive = Answer::orderBy('created_at', 'desc') 
          //->where('answered', 'not') 
          ->where('player_id', $player->id) 
          ->where('quiz_id', $quiz->id) 
          ->take(2); 

if ($inactive->count() == 2 && $inactive->first()->answered == 'not' && $inactive->last()->answered == 'not') { 
       // The game was finished 
       $opponent = $quiz->getOpponent($player); 
       $quiz->status = 'finished'; 
       $quiz->save(); 

       Event::fire(new GameEvent(
        'quizFinished', 
        [ 
         $opponent->user, 
         $player->user, 
        ], 
        [] 
       )); 
      } 
関連する問題