С наилучшими пожеланиями!
Сегодня я пытаюсь сгенерировать счета в формате PDF с помощью DOMPDF.
Давайте объясним:
У меня есть вид, что я выбираю идентификатор счета. Когда я нажимаю кнопку «Создать PDF», это происходит следующим образом:
(берет вас к контроллеру)
foreach ($this->input->post('check') as $key)
{
$testLayout = load_modulo('bankX', 'invoice_bankX'); //here I call the file in views dir(bankX) and the view inside the file (case 'invoice_bankX') that brings me the bank invoice layout
$filename = 'invoice_'.$key;
pdf_create($testLayout, $filename, TRUE);
}
(функция load_modulo)
function load_modulo($modulo = NULL, $tela = NULL, $diretorio = 'panel') {
$CI = & get_instance();
if ($modulo != NULL) {
return $CI->load->view("$diretorio/$modulo", array('tela' => $tela), TRUE);
} else {
return FALSE;
}
}
(функция pdf_create)
function pdf_create($html, $filename = '', $stream = TRUE) {
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
if ($stream) {
$dompdf->stream($filename . ".pdf");
} else {
$output = $dompdf->output();
file_put_contents('Brochure.pdf', $output);
}
Теперь, зная, что у меня есть больше данных для передачи в представление invoice_bankX (мне нужен 1 var, который сохраняет значения банка и клиента, которые я могу вызвать в этом представлении, чтобы смонтировать счет-фактуру с клиентом и сохранить данные)
то есть
$ invoiceData = array ();
$ invoiceData [‘invoice_number’] = 344;
$ invoiceData [‘client_name’] = ‘John Masters’;
Потому что таким образом я могу передать значения, чтобы правильно смонтировать счет.
Кто-нибудь знает как?
* примечание — прямо сейчас, если я нажму кнопку, чтобы сгенерировать счет (PDF), это работает. Но счет идет со статическими данными, которые я написал, чтобы проверить
Я нашел способ сделать это, установив номер счета в сеансе.
Контроллер теперь выглядит так и работает:
foreach ($this->input->post('check') as $key)
{
$dataInvoice = array('invoice_number' => $key);
$this->session->set_userdata($dataInvoice);
$testLayout = load_modulo('bankX', 'invoice_bankX');
$filename = 'invoice_'.$key;
pdf_create($testLayout, $filename, TRUE);
}
Таким образом, я мог бы при взгляде
$invoice_number = $this->session->userdata('invoice_number');
и делать все запросы, которые я хочу
Других решений пока нет …