Laravel: указан неверный аргумент для foreach () - PullRequest
0 голосов
/ 18 июня 2019

Я получаю данные из цикла в station_id, чтобы получить данные из расписания.

$stations_id = Station::pluck('id'); // Output [1,2,3,4]
$schedules = [];
foreach ($stations_id as $station_id) {
     echo $schedules = Schedule::select('id')
                        ->where('station_id', $station_id)
                        ->latest()
                        ->first();                
     }

Эхо-сигнал $schedules:

{ "идентификатор": 16} { "идентификатор": 17} { "идентификатор": 15}

Но проблема в том, что я пытался пройтись по $schedules, чтобы получить данные из другой таблицы с именем Queue, я имею в виду, что я хочу получать последние очереди каждого расписания, которое мы в нем зацикливаем.

Итак, я сделал это так:

$queues = [];
foreach ($schedules as $schedule) {       
    echo $queues = Queue::withTrashed()
                 ->latest()
                 ->where('schedule_id', $schedule);               
}

но это показало эту ошибку:

В foreach указан неверный аргумент ()

Я не знал, где я это пропустил.

1 Ответ

2 голосов
/ 18 июня 2019

Переменная $schedules не является массивом, когда вы заканчиваете свой первый цикл. Вы захотите, чтобы $schedules был массивом после первого цикла:

$stations_id = Station::pluck('id'); // Output [1,2,3,4]
$schedules = [];
foreach ($stations_id as $station_id) {
     $schedules[] = Schedule::select('id')
                    ->where('station_id', $station_id)
                    ->latest()
                    ->first();                
}

// second loop here

$queues = [];
foreach ($schedules as $schedule) {       
    $queues[] = Queue::withTrashed()
             ->latest()
             ->where('schedule_id', $schedule->getKey())->first();               
}

// do something with queues
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...