解决 Chrome 6.2 以上版本使用 dump () 或者 dd () 时,network Preview 无法渲染问题

问题描述


既该界面无法渲染dump()或者dd()

chrom版本: 63.0.3239.84
系统版本: os10.12

解决办法

当响应的状态码为400 or 500系列时可以使Preview渲染

http_response_code(500); // or 400系列状态码
dd(request());

寻求方便的话,可以将上面的代码添加到 live templates中,或者添加一个helper function

function ddd(...$args){
    http_response_code(500);
    call_user_func_array('dd', $args);
}

补充

如果服务端响应的数据过大时Preview可能会出现 failed to load response data 这样的错误.
并没有找到确切的解决办法,可以尝试变更http响应的状态码为400解决该问题.

参考链接: https://github.com/symfony/symfony/issues/...

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 6年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 14

重写 dd() 函数: 分享:小技巧大用处:自定义任意 Laravel 帮助函数

// public/index.php

function dd(...$args)
{
    http_response_code(500);
    array_walk($args, [new Illuminate\Support\Debug\Dumper, 'dump']);
    die(1);
}

require __DIR__.'/../vendor/autoload.php';
6年前 评论

之前老是复制处理来,在浏览器中打开

6年前 评论

重写 dd() 函数: 分享:小技巧大用处:自定义任意 Laravel 帮助函数

// public/index.php

function dd(...$args)
{
    http_response_code(500);
    array_walk($args, [new Illuminate\Support\Debug\Dumper, 'dump']);
    die(1);
}

require __DIR__.'/../vendor/autoload.php';
6年前 评论
Complicated

之前也遇到这个问题,一直没解决,但是这个解决感觉也是妥协啊,最根本的是谷歌浏览器那边的问题吧,,不知道为啥,360极速就是套了层壳子,内核都是一样的,但是360极速就没问题,遂,换了浏览器

6年前 评论

@Complicated 内核版本不一样吧,chrome 62之前的版本也正常的

6年前 评论

@Complicated 对,这是谷歌浏览器的一个bug。但是实在是不舍得谷歌,虽然火狐做的很好?

6年前 评论
chiri

@魏文豪 试了一下火狐,貌似也是有这个问题的。

6年前 评论
Jourdon

哇,这个问题在调试 api 时无法正常渲染真是最头疼了,终于被解决了,历害了。赞!!!

6年前 评论
北冥

添加这个之后浏览器console中会报错

http_response_code(500);
6年前 评论

还好我只用print_r

6年前 评论

@北冥 只是dd调试的时候才加,平时不要加~ 这样不影响的哦

6年前 评论
mouyong

var_dump 无法渲染也可以同样的方式解决.

6年前 评论
suhanyujie

哇。。。果然好用,之前 如果不能预览 我一般 转成数组 使用var_dump 看

6年前 评论

ajax调试可以用扩展PHP DebugBar,带的工具条的debug

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!