-3
基本上我只是試圖用一個foreach的數組工作。該陣列包含來自每個設備的數據(大約10000個設備),其中一些由於數據較舊而爲空。我需要在下面的foreach中使用這個數組來確保$ newFault被創建,如果它有錯誤的軟件的話。我超級卡住,不能得到它的工作。在PHP中的數組foreach
任何線索?
請注意,我的陣列必須能夠使用下面的DeviceLogs的關係。
public function createViaCameras()
{
set_time_limit(120);
//This part removes the entire existing FirmwareFault database for the new info to go in.
FirmwareFault::truncate();
CameraUnlinked::truncate();
//This part imports all cameras from today.
$today = (new \DateTime);
$today->modify('-3 day');
$tomorrow = (new \DateTime);
$tomorrow->modify('+1 day');
$devices = Device::take(10)->get();
foreach ($devices as $device) {
$logs[$device->id] = DeviceLog::whereNotIn('model', ['Test', 'Test2'])->whereDeviceId($device->id)->whereBetween('created_at', [$today, $tomorrow])->orderBy('created_at', 'desc')->first();
}
foreach ($logs as $log) {
if (count($log->camera)) {
if ($log->model = $log->camera->name) {
if ($log->acaps == '1' && $log->version !== $log->camera->fwts) {
$newFwFault = new FirmwareFault();
$newFwFault->serial = $log->device->serial;
$newFwFault->fw = $log->version;
$newFwFault->model = $log->model;
$newFwFault->new_fw = $log->camera->fwts;
$newFwFault->fault_id = $log->acaps;
$newFwFault->save();
} elseif ($log->acaps == '2' && $log->version !== $log->camera->fwtb) {
$newFwFault = new FirmwareFault();
$newFwFault->serial = $log->device->serial;
$newFwFault->fw = $log->version;
$newFwFault->model = $log->model;
$newFwFault->new_fw = $log->camera->fwdt;
$newFwFault->fault_id = $log->acaps;
$newFwFault->save();
} elseif ($log->acaps == '3' && $log->version !== $log->camera->fwppt) {
$newFwFault = new FirmwareFault();
$newFwFault->serial = $log->device->serial;
$newFwFault->fw = $log->version;
$newFwFault->model = $log->model;
$newFwFault->new_fw = $log->camera->fwppt;
$newFwFault->fault_id = $log->acaps;
$newFwFault->save();
} elseif ($log->acaps == '4' && $log->version !== $log->camera->fw) {
$newFwFault = new FirmwareFault();
$newFwFault->serial = $log->device->serial;
$newFwFault->fw = $log->version;
$newFwFault->model = $log->model;
$newFwFault->new_fw = $log->camera->fw;
$newFwFault->fault_id = $log->acaps;
$newFwFault->save();
} elseif ($log->acaps == '0' && $log->version !== $log->camera->fw) {
$newFwFault = new FirmwareFault();
$newFwFault->serial = $log->device->serial;
$newFwFault->fw = $log->version;
$newFwFault->model = $log->model;
$newFwFault->new_fw = $log->camera->fw;
$newFwFault->fault_id = $log->acaps;
$newFwFault->save();
} else {
$newUnlink = new CameraUnlinked();
$newUnlink->serial = $log->device->serial;
$newUnlink->model = $log->model;
$newUnlink->save();
}
} else {
$newUnlink = new CameraUnlinked();
$newUnlink->serial = $log->device->serial;
$newUnlink->model = $log->model;
$newUnlink->save();
}
} else {
$newUnlink = new CameraUnlinked();
$newUnlink->serial = $log->device->serial;
$newUnlink->model = $log->model;
$newUnlink->save();
};
};
return redirect()->back();
}
您的'$ newFault'數組在哪裏?你的意思是'$ newFwFault'? – hassan
也是,你知道這個'$ log-> model = $ log-> camera-> name'? – hassan
是的,$ newFwFault是需要由數組進行處理的那一個。循環中的所有if語句都需要對數組本身進行foreach。 是的,我知道那一部分。這是兩個單獨的關係,基本上對同一事物使用不同的名稱。 – Stoff