Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DOMPDF loadView()错误-未定义变量:数据_Php_Laravel_Dompdf - Fatal编程技术网

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

Php DOMPDF loadView()错误-未定义变量:数据,php,laravel,dompdf,Php,Laravel,Dompdf,我目前正试图将这个变量合并到我的项目中,但是我正在研究如何将一个变量传递到PDF模板中 根据说明,在我的控制器中,我有: //PrintController.php $data = array('name'=>'John Smith', 'date'=>'1/29/15'); $pdf = PDF::loadView('contract', $data); return $pdf->stream('temp.pdf'); 在我看来: //contract.php ... &

我目前正试图将这个变量合并到我的项目中,但是我正在研究如何将一个变量传递到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>

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

您正在使用的loadView方法将在将数据传递到视图之前使用extract方法。此方法提取所有数组元素,并基于元素的键为它们创建变量

这意味着数组键将是变量名,即$name而不是$data->name。这在laravel中是相当标准的,例如在使用刀片视图时

使用
compact('data')
而不是
$data

例如:

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

您正在使用的包装器最终调用$this->view->make,因此您可能会发现以下页面上的信息很有用:然后您可以通过
@foreach($data as$row)
和在foreach内部使用
$row->name
$pdf = \PDF::loadView('productType.invoice', compact('data'));