Not your data, but here I am purging cleared ckecks, they are backed up to another table, a csv file is generated of cleared checks. Not laravel, but may give some ideas.
public function checkPurge()
{
$stmt = $this->db->select("SELECT * FROM checks ORDER BY checkid", array(), \PDO::FETCH_ASSOC);
$k = 0;
$numbers[0] = 0;
$fileout = fopen("cleared.txt", "wb");
foreach ($stmt as $row) {
$k = $k + 1;
if ($k < 2) {
$checkid = $row['checkid'];
$transdate = $row['transdate'];
$transdrscribe = $row['transdescribe'];
$wd = Cln::fixInt($row['widthdraw']);
$dep = Cln::fixInt($row['deposit']);
$isclr = Cln::fixTiny($row['isclr']);
} else {
if ($row['isclr'] == 1) {
$checkid = $row['checkid'];
$transdate = $row['transdate'];
$transdrscribe = $row['transdescribe'];
$wd = Cln::fixInt($row['widthdraw']);
$dep = Cln::fixInt($row['deposit']);
$isclr = Cln::fixTiny($row['isclr']);
} else {
$k = 100000;
}
}
$newline = $checkid . ',' . $transdate . ',' . $transdrscribe . ',' . $wd . ',' . $dep . ',' . $isclr . PHP_EOL;
$postdata = array(
'checkid' => $checkid,
'transdate' => $transdate,
'transdescribe' => $transdrscribe,
'widthdraw' => $wd,
'deposit' => $dep,
'isclr' => $isclr,
'PRTED' => 'y'
);
if ($k > 99999)
break;
fputcsv($fileout, explode(',', $newline));
$this->db->insert("checkbacks", $postdata); //HERE `HERE`
$numbers[$k] = $row['checkid'];
}
fclose($fileout);
$chktokeep = end($numbers);
reset($numbers);
$postdata = array(
'transdescribe' => "Start Amt",
'widthdraw' => NULL,
'deposit' => $rs,
'isclr' => 1,
);
$where = array('checkid' => $chktokeep);
$this->db->update("checks", $postdata, $where);
foreach ($numbers as $value) {
if ($value < $chktokeep && $value != 0) {
$this->db->delete("checks", array('checkid' => $value));
}
}
return;
}
Basically cleared checks are inserted into the checkbacks table. isclr is a checkbox.