Запуск классов для создания отчета Excel для нескольких элементов из массива и цикла - PullRequest
1 голос
/ 14 июля 2020

У меня здесь большая часть основы, чтобы взять жестко запрограммированный массив, запустить команду 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 вокруг каждого, а затем передать значения массива в методы для следующего файла класса

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