tcpdf Ошибки при попытке создать строку таблицы с двойным foreach с использованием Heredoc - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь динамически добавлять строки и столкновения с помощью метода Heredoc, но когда я добавляю по одному для каждого в другое для каждого, я получаю ошибки:

Notice: Undefined index: startcolumn in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19537
Notice: Undefined index: startx in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19538
Notice: Undefined index: startpage in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19541
Notice: Undefined index: startpage in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19544
Notice: Undefined index: in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19544
Notice: Undefined index: startpage in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19545
Notice: Undefined index: in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19545
Notice: Undefined index: startpage in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19577
Notice: Undefined index: startx in C:\xampp\htdocs\vendor\tecnickcom\tcpdf\tcpdf.php on line 19797
TCPDF ERROR: Some data has already been output, can't send PDF file

Это код:


    function Table($header, $data)
    {
        $this->SetFont('helvetica', 'B', 6);
        $tbl = <<<EOD
        <table border="1" cellpadding="1" cellspacing="0" nobr="true">
        <tr>
        EOD;
        foreach($header as $col) {
            $tbl.=<<<EOD
                    <th>{$col}</th>
            EOD;
             }
        $tbl.=<<<EOD
        </tr>
        EOD;
        foreach ($data as $row) {
            //When adding this second row definition this causes errors
            $tbl.= <<<EOD
            <tr>
            EOD;
            foreach ($row as $col) {
            $tbl.= <<<EOD
                    <td>{$col}</td>
            EOD;
            }
            $tbl.= <<<EOD
            </tr>
            EOD;
             }
        $tbl.=<<<EOD
        </table>
        EOD;
        $this->writeHTML($tbl, true, false, false, false, '');
    }

Эта специфическая ошибка, кажется, происходит из-за добавления второго тега строки таблицы. Все работает, когда у меня нет определения второй строки таблицы, и я уверен, что я закрываю все свои теги / отформатирован правильно, поэтому я не могу понять, почему это не работает, как только ядобавить:

    $tbl.= <<<EOD
      <tr>
    EOD;
    //And the closing tr tag

Во внутреннюю петлю это вызывает у меня ошибки, я не могу понять, почему. Я знаю, что эта функция грязная, но я работаю с тем, что у меня есть.



РЕДАКТИРОВАНИЕ И РАБОТА: После печати некоторых значенийВместо тегов я заметил, что он также перебирает пустое значение, поэтому с тех пор я удалил это и исправил свою проблему.

...