将变量从控制器传递到在 CodeIgniter 中使用 DOMPDF 的视图
Passing variables from controller to view that works with DOMPDF in CodeIgniter
此致!
今天,我在尝试使用 DOMPDF 生成 PDF 格式的发票时遇到了问题。
让我们解释一下:
我认为我 select 发票编号。当我点击 "generate 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 个变量来保留我可以在此视图中回调的银行和客户值,以便与客户一起安装发票和存储数据 )
即
$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');
并执行我想要的所有查询
此致! 今天,我在尝试使用 DOMPDF 生成 PDF 格式的发票时遇到了问题。
让我们解释一下: 我认为我 select 发票编号。当我点击 "generate 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 个变量来保留我可以在此视图中回调的银行和客户值,以便与客户一起安装发票和存储数据 )
即
$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');
并执行我想要的所有查询