У меня здесь большая часть основы, чтобы взять жестко запрограммированный массив, запустить команду sql для каждого идентификатора в массиве в al oop, а затем создать данные для каждого, которые в конечном итоге будут представлены в виде отчета Excel для каждая запись массива.
Итак, я буду вызывать makeReportFile.php
, который, в свою очередь, вызовет testReports.php
. На этом этапе я хочу l oop в массиве, чтобы ключ / номер был включен в мой sql запрос, а имя элемента массива впоследствии использовалось для имен файлов и тем электронной почты, если это имеет смысл.
После этого я ищу одну папку с именем «excel / Reports», в которой будет 12 отчетов Excel с именами «First Address.xlsx», «Second Address.xlsx» и т. Д. c. Моя проблема здесь в том, что я могу легко запускать это отдельно, используя каждый как свой собственный файл, но я хочу запустить его таким образом, чтобы при добавлении или удалении элементов из массива я просто изменял одну область кода.
Как я могу правильно заполнить и oop здесь, чтобы достичь того, что я ищу?
testReports. php
class testReports {
static function getData(){
$items = array(
1452 => 'First Address',
1462 => 'Second Address',
1432 => 'Third Address',
1352 => 'Fourth Address',
1152 => 'Fifth Address',
1682 => 'Sixth Address',
1982 => 'Sevent Address',
1342 => 'Eighth Address',
1902 => 'Ninth Address',
1572 => 'Tenth Address',
1252 => 'Eleventh Address',
1842 => 'Twelvth Address',
);
$sql = "
select *
from tableTwo
where number = ?
";
//This should search by 1452,1462,1432, and so on
foreach($item in $items){
$results = DB::connection('odbc')->select($sql);
}
return $results;
}
public static function makeName(){
$currentTime = time();
return $name . "Report";
}
//This should return "First Address Report", "Second Address Report" and so on
}
makeReportFile. php
class makeReportFile
{
public function handle() {
$data = testingReports::getData();
$filename = testingReports::makeName();
$filepath = 'excel/reports';
$fileWriter->store('xlsx', storage_path($filepath));
$body = "Attached is the" . $name . "report";
Mail::raw($body , function ($message) use ($emails,$filepath,$filename) {
$message->subject($name . "Report");
});
}
}
ОБНОВЛЕНИЕ: теперь, когда я смотрю на это, массив, вероятно, должен быть в первом классе / файле и l oop вокруг каждого, а затем передать значения массива в методы для следующего файла класса