Может ли кто-нибудь помочь объяснить, почему один из следующих запросов Laravel работает, а другой нет?
Первое, что работает:
$array = ( 1, 2, 3 ,4 );
$query->whereIn( 'status_id', $array );
Это работает, как и ожидалось. Однако, когда я пытаюсь передать функцию для построения моего массива:
$query->whereIn( 'status_id', function() use ( $statuses ){
$status_array = array();
foreach( $statuses as $status ){
$status_array[] = $status->status_id;
}
return $status_array;
});
Я получаю следующую ошибку:
Общая ошибка: 1096 Таблицы не используются (SQL: выберите * из
jobs
, гдеstatus_id
в (выберите *))
Я проверил, что массив, который я создаю в замыкании, совпадает с массивом, который работает, и это так. Я упустил что-то фундаментальное в отношении whereIn() и его функций закрытия? Могу ли я даже передать замыкание в whereIn()?