Laravel 4.2中laravel-dompdf无法向模板传递变量求助
看起来你遇到的是Laravel视图的Blade语法没有被正确解析的问题,我帮你梳理几个最可能的原因和解决办法:
检查视图文件的扩展名
这是最常见的原因!Laravel只有当视图文件以.blade.php结尾时,才会解析Blade语法(比如{{ $order->required_date }})。你需要确认你的视图文件路径是resources/views/emails/pagoHechoPDF.blade.php,而不是pagoHechoPDF.php。如果扩展名不对,Laravel会直接把文件内容原样输出,包括Blade标签。清除视图缓存
如果你之前修改过视图文件的扩展名或者内容,Laravel可能缓存了旧的视图版本。运行下面的命令清除视图缓存:php artisan view:clear之后重新生成PDF,看看问题是否解决。
验证变量是否正确传递
虽然你用了compact()和数组两种传参方式,但可以临时在视图文件里加一段原生PHP代码验证变量是否存在:<?php var_dump($order); ?>如果这段代码能输出
$order的内容,说明变量传递没问题,问题还是出在Blade解析上;如果输出null或者报错,那你需要检查$order变量在调用PDF::loadView()之前是否被正确赋值。确认PDF生成包的配置
如果你使用的是barryvdh/laravel-dompdf这类常用的PDF包,loadView()方法默认会调用Laravel的视图编译器来解析Blade语法。但如果你手动修改过包的配置,比如强制使用原生HTML加载,可能会导致Blade不被解析。可以检查包的配置文件(比如config/dompdf.php),确保没有禁用视图解析的相关设置。
内容的提问来源于stack exchange,提问作者Paola Reyes

