VSCODE中调试Laravel blade模板除dd(get_defined_vars())外的替代方案
VSCode 环境下 Laravel Blade 模板其他调试方案
以下是除了 dd(get_defined_vars()) 之外常用的调试方案:
Laravel 内置调试能力
- 轻量化打印变量:使用
dump()函数或者 Blade 原生的@dump指令,和dd()的区别是不会终止程序运行,不会打断后续页面渲染。直接在模板对应位置写@dump($要调试的变量名)即可,不需要包裹 PHP 标签。如果需要打印所有视图变量,直接写@dump(get_defined_vars())即可,语法比手动写dd更简洁。 - 日志输出隐藏调试内容:不想调试内容暴露在前端页面的话,可以在 Blade 中通过
@php块调用日志函数输出内容,比如@php info('模板变量信息', [$user, $order]); @endphp,所有内容会写入到项目storage/logs/laravel.log文件中,直接在 VSCode 中打开该日志文件即可查看调试结果。
VSCode + Xdebug 断点调试(推荐)
无需手动加任何打印代码,即可查看全量上下文变量:
- 先在本地 PHP 环境安装配置 Xdebug 扩展,再在 VSCode 中安装官方
PHP Debug扩展 - 在项目
.vscode/launch.json中添加对应 PHP 调试配置,监听 Xdebug 通讯端口(默认多为 9003) - 直接在目标 Blade 模板的对应行左侧点击打断电即可,Xdebug 会自动完成 Blade 模板和编译后缓存文件(存放在
storage/framework/views/目录)的映射,请求触发后断点命中时,就能在 VSCode 调试面板直接查看当前所有作用域下的变量、视图传入参数,还可以逐行执行调试排查逻辑问题。 - 如果断点无法命中,可以先在控制器返回视图的代码行打断电,先确认传递到视图的变量是否符合预期,再跟进模板渲染流程。
第三方工具辅助
- 安装 Laravel Debugbar 扩展:本地开发环境安装完成后,页面底部会自动展示调试栏,切换到「Views」标签就能看到当前页面渲染的所有 Blade 模板,以及每个模板接收到的全部变量,不需要手动添加任何调试代码,所有视图参数都会自动归集展示。该扩展只会在
APP_DEBUG=true的开发环境生效,不会影响生产环境。
内容的提问来源于stack exchange,提问作者Shannon McGee
相关产品推荐
相关产品推荐

