DOMPDF loadView() 错误 - 未定义的变量:数据
DOMPDF loadView() error - undefined variable: data
我目前正在尝试将 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
变量传递给视图。在控制器 and/or 视图中设置它时我是否遗漏了一个步骤?
您正在使用的 loadView 方法将在将数据传递给视图之前使用 extract 方法。该方法提取所有数组元素,并根据元素的键为它们创建变量
这意味着您的数组键将成为您的变量名,即 $name 而不是 $data->name。这在 laravel 中是相当标准的,例如在使用 Blade Views 时。
使用 compact('data')
而不是 $data
。
示例:
$pdf = \PDF::loadView('productType.invoice', compact('data'));
我目前正在尝试将 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
变量传递给视图。在控制器 and/or 视图中设置它时我是否遗漏了一个步骤?
您正在使用的 loadView 方法将在将数据传递给视图之前使用 extract 方法。该方法提取所有数组元素,并根据元素的键为它们创建变量
这意味着您的数组键将成为您的变量名,即 $name 而不是 $data->name。这在 laravel 中是相当标准的,例如在使用 Blade Views 时。
使用 compact('data')
而不是 $data
。
示例:
$pdf = \PDF::loadView('productType.invoice', compact('data'));