2015-08-27 11 views
0

С уважением! Сегодня у меня проблема с созданием счетов-фактур в формате PDF с DOMPDF.Передача переменных из контроллера для просмотра, который работает с DOMPDF в CodeIgniter

Давайте объясним: У меня есть представление, что я выбираю идентификатор счета. При нажатии на кнопку "Создать 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 tha т сохранить банковские и клиентские значения, которые можно CALLBACK в этом представлении для монтирования счетов с клиентом и магазином DATAS)

т.е.

$ invoiceData = Array();

$ invoiceData ['invoice_number'] = 344;

$ invoiceData ['client_name'] = 'John Masters';

Поскольку этот способ я могу передать значения, чтобы правильно установить счет. Кто-нибудь знает как?

* note - прямо сейчас, если я нажму кнопку для создания счета-фактуры (PDF), это сработает. Но счет-фактура поставляется со статическими данными, которые я написал для тестирования.

+0

Вы не забирающий данные из базы данных. – mdamia

+0

@mdamia Да, я еще не. Мое первичное сомнение заключается в том, «как передать проверку post var в представление»? Поскольку таким образом я могу получить данные базы данных с помощью идентификатора проверки –

ответ

0

Я нашел способ сделать это, установив номер счета на сеанс. Контроллер теперь выглядит следующим образом, и она работает:

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'); 

и делать все запросы, которые я хочу