laravel multiple where clauses within a loop

Posted by user1424508 on Stack Overflow See other posts from Stack Overflow or by user1424508
Published on 2013-10-21T03:39:07Z Indexed on 2013/10/21 3:53 UTC
Read the original article Hit count: 158

Filed under:
|
|
|
|

Pretty much I want the query to select all records of users that are 25 years old AND are either between 150-170cm OR 190-200cm.

I have this query written down below. However the problem is it keeps getting 25 year olds OR people who are 190-200cm instead of 25 year olds that are 150-170 OR 25 year olds that 190-200cm tall. How can I fix this? thanks

 $heightarray=array(array(150,170),array(190,200));
 $user->where('age',25);

   for($i=0;$i<count($heightarray);i++){
 if($i==0){
   $user->whereBetween('height',$heightarray[$i])
}else{
   $user->orWhereBetween('height',$heightarray[$i])
 }
 }
      $user->get();

Edit: I tried advanced wheres (http://laravel.com/docs/queries#advanced-wheres) and it doesn't work for me as I cannot pass the $heightarray parameter into the closure.

from laravel documentation

 DB::table('users')
        ->where('name', '=', 'John')
        ->orWhere(function($query)
        {
            $query->where('votes', '>', 100)
                  ->where('title', '<>', 'Admin');
        })
        ->get();

© Stack Overflow or respective owner

Related posts about php

Related posts about mysql