Отображение массива данных в одну строку таблицы с использованием библиотеки fpdf - PullRequest
0 голосов
/ 19 июня 2020

У меня проблемы с использованием библиотеки fpdf в codeigniter. У меня есть функция, которая экспортирует все данные в файл PDF. Но у меня проблема с отображением данных в строку таблицы.

Я хочу сделать это

Name        | Short_Name | Active | Destinations
Sample Name | SN         | true   | Destination 1, Destination 2, Destination 3,

Но в итоге я получил только это

Name        | Short_Name | Active | Destinations
Sample Name | SN         | true   | Destination 3,

Я не могу отобразить все данные. Я всегда получаю только одни данные.

Пока что это структура кода, над которой я работал.

$data = $this->airlines->get_airline($id);
$airlineloc = $this->destinations->get_airline_location($id);
$location = $this->destinations->get_active_destination(); //location

// The mapping of the data 
foreach($data as $row) {

    $destinations = [];

        $this->destinationperairline->Cell($w[0], 8, $row->LongName,'LR',0,'C', $fill);
        $this->destinationperairline->Cell($w[1], 8, $row->ShortName, 'LR', 0, 'C', $fill);


        if($row->Active == 1){
            $this->destinationperairline->Cell($w[2], 8, 'Active', 'LR', 0, 'C', $fill);
        }

        // Mapping the locations  
        foreach($location as $row4) {
            // Mapping the locations to its specific airline 
            foreach($airlineloc as $row3) {
                // This codeblock should map the whole data in the pdf table row
                if($row3->ChildID == $row4->DictionaryID && $row->Active == 1) {
                    $destinations = $row4->LongName.",";
                }

            }

        }

        $this->destinationperairline->Cell($w[3], 8, $destinations, 'LR', 0, 'C', $fill);

        $this->destinationperairline->Ln();
        $fill = !$fill;
}

Есть ли способ отобразить все данные в одной таблице row с помощью библиотеки fpdf? Спасибо всем, кто может помочь.

1 Ответ

0 голосов
/ 19 июня 2020

Вам необходимо concatenate данные, используя .= вместо =. Когда вы используете =, предыдущие значения перезаписываются, и остается только последнее значение. Кроме того, вам не нужно $destinations = [];

// $destinations = []; // remove this
// ...
// ...
// ...
if($row3->ChildID == $row4->DictionaryID && $row->Active == 1) {
    $destinations .= $row4->LongName.","; // change here
}

Надеюсь, это вам поможет.

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