DOMPDF loadView()错误 - 未定义的变量:数据

时间:2015-01-29 14:21:05

标签: php laravel dompdf

我目前正在尝试将DOMPDF Wrapper for Laravel合并到我的项目中,但是我正在弄清楚如何将变量传递到PDF模板中。

根据说明,我的控制器中有:

//PrintController.php
$data = array('name'=>'John Smith', 'date'=>'1/29/15');

$pdf = PDF::loadView('contract', $data);
return $pdf->stream('temp.pdf');

在我看来:

//contract.php
...
<p><?php echo $data->name ?><p>
<p>Signature</p>

但是当我尝试渲染页面时,我收到错误:

ErrorException (E_UNKNOWN) 
Undefined variable: data

我不确定为什么loadView()方法没有将$data变量传递给视图。在控制器和/或视图中设置它时是否缺少一步?

2 个答案:

答案 0 :(得分:12)

您正在使用的loadView方法将在将数据传递给视图之前使用extract方法。此方法提取所有数组元素,并根据元素的键

为它们创建变量

这意味着您的数组键将是您的变量名,即$ name而不是$ data-&gt; name。这在laravel中是相当标准的,例如在使用Blade Views时。

http://php.net/manual/en/function.extract.php

答案 1 :(得分:3)

使用compact('data')代替$data

示例:

$pdf = \PDF::loadView('productType.invoice', compact('data'));