2015-11-13 4 views
3

Я хочу, чтобы преобразовать этот запрос в Laravel 4 Eloquent.Преобразование запроса Mysql в Laravel 4 Красноречивый

$query = SELECT * FROM standard_products WHERE frame_category like "%1%" OR 
frame_category like "%2%" OR frame_category like "%3%"; 

Здесь у меня есть массив

$frame = Array([1]=1,[2]=2,[3]=3); 

Требование:

Использование $frame массив Я хочу, чтобы получить тот же результат в Laravel красноречивы

Мое усилие:

foreach ($frame as $val) { 
    $match = Standard_product::orWhere('frame_category','like','%'.$val.'%'); 
} 
    $match = $match->get()->toArray(); 

Но результат $match не равен $query. Пожалуйста, помогите мне

+0

Не могли бы вы форматировать фрагменты кода, чтобы сделать их читаемыми? – slick

ответ

2
$frame = Array(1,2,3); 
$q = DB::table('standard_products'); 
foreach ($frame as $val) { 
    $q = $q->orWhere('frame_category','like','%'.$val.'%'); 
} 

Производит

select * 
from `standard_products` 
where `frame_category` like ? 
or  `frame_category` like ? 
or  `frame_category` like ? 
+0

поблагодарить U JRD :-) –

3

Вы можете сделать это, как

Model::where(function ($query) use ($frame) { 
    foreach($frame as $val){ 
     $query->orWhere('frame_category','like',"%$val%"); 
    } 
})->get(); 
Смежные вопросы