2016-03-28 4 views
1

я хочу переписать следующий SQL заявление в красноречивой Формат:Эквивалент для ИНЕКЕ с использованием Красноречивый функции

SELECT `id`, `pushbadge`, `pushalert`, `pushsound` 
    FROM `devices` 
    WHERE `id` IN (1, 2, 3) 
     AND `status`='active'" 

Моя мысль была

public function getDevicesWithIDs($ids) { 

    $conditions = array(); 
    foreach($ids as $id) { 
     $conditions[] = ['id' => $id]; 
    } 
    var_dump($conditions); 

    return Device::where($conditions)->get(); 
} 

Но это возвращает:

SQLSTATE[42S22]: Column not found: 1054 
Unknown column '0' in 'where clause' 
(SQL: select * from `devices` where (`0` = 1)) 

ответ

3

, если $ids представляет собой массив

вы можете получить свой результат с чем-то, как показано ниже

Device::whereIn('id', $ids)->where('status', 'active')->get(['id', 'pushbadge', 'pushalert', 'pushsound']);

+0

отлично! Спасибо! – sesc360

Смежные вопросы