DOMPDF loadView() error - undefined variable: data

痞子三分冷 提交于 2019-12-18 07:54:12

问题


I'm currently trying to incorporate the DOMPDF Wrapper for Laravel into my project, however I'm having troble figuring out how to pass a variable into the PDF template.

As per the instructions, in my controller I have:

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

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

and in my view:

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

But when I try to render the page, I get the error:

ErrorException (E_UNKNOWN) 
Undefined variable: data

I'm not sure why the loadView() method is not passing the $data variable to the view. Is there a step I'm missing in setting it up in the controller and/or view?


回答1:


The loadView method you are using is going to use the extract method before passing the data to the views. This method extracts all the array elements, and creates variables for them based on the key of the element

This means that your array keys are going to be your variable names, ie $name and not $data->name. This is fairly standard in laravel, for example when using Blade Views.

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




回答2:


Use compact('data') instead of $data.

Example:

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


来源:https://stackoverflow.com/questions/28216993/dompdf-loadview-error-undefined-variable-data

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!