在ajax过程中,如何从controller打印数组?

在ajax过程中,如何从controller打印数组?,ajax,symfony,doctrine,Ajax,Symfony,Doctrine,我正在尝试调试对数据库的AJAX调用 但是没有办法看到我使用的数据。我尝试过插入一些Javascript: 我还尝试使用print\r,但什么也没发生 有没有办法查看我的变量?例如,开发人员工具,或者我可以使用的任何命令 谢谢你的帮助 function console_log( $data ){ echo '<script>'; echo 'console.log('. json_encode( $data ) .')'; echo '</script&

我正在尝试调试对数据库的AJAX调用

但是没有办法看到我使用的数据。我尝试过插入一些Javascript:

我还尝试使用
print\r
,但什么也没发生

有没有办法查看我的变量?例如,开发人员工具,或者我可以使用的任何命令

谢谢你的帮助

function console_log( $data ){
    echo '<script>';
    echo 'console.log('. json_encode( $data ) .')';
    echo '</script>';
}
和我的js代码:

function searchForEvents(value){
    $.ajax({
        method:"POST",
        data: value=2,
        url:"{{ path('searchEvents') }}",
        dataType:'json',
        success: function(data){
            //var results = JSON.parse(data.events);
            alert(JSON.stringify(data, null, 4));
            //putEvents(results);
        }
    })
}

不确定我是否正确理解了您的问题,但AJAX请求必须使用symfony developer工具栏单独调试,或者在浏览器开发工具中查看请求→ 网络选项卡。您还可以检查var/log/dev.log

我假设您使用Symfony 4+,如果这种情况下需要安装Symfony Profiler和var转储程序包(-)。安装这两个捆绑包时,需要将
print\r
功能更改为
dump
功能。完成此操作后,探查器包将记录所有请求。您可以访问“_profiler”路由的探查器数据(例如:或类似的内容)

请注意,浏览器将在请求的标题内显示指向探查器的直接链接,以下是一个示例:
发送AJAX请求的方式无效。将其更改为:

function searchForEvents(value){
    $.ajax({
        method:"POST",
        data: {value: 2},
        url:"{{ path('searchEvents') }}",
        dataType:'json',
        success: function(data){
            //var results = JSON.parse(data.events);
            alert(JSON.stringify(data, null, 4));
            //putEvents(results);
        }
    })
}
这仍然不会通过
搜索框
,但希望这也足以解决这个问题。如果没有,请添加更多详细信息


关于调试数据,您可以始终使用良好的旧
echo var_dump
,并在dev tools的网络选项卡中查看它将什么放入您的请求-响应中,或者您可以通过Symfony方式将其放入文件中。

如您所见,我在ajax过程中引用了一个变量。但是这个变量似乎没有传递给控制器。当我出现错误时,看起来变量是来自调用的变量的值“='null”。为什么会发生这种情况?它基本上是一个刷新onkeyup的搜索工具。我正在尝试从数据库中获取JSON数据。但我不知道它是否正在将输入的文本值输入我的symfony控制器。我很确定它不工作,因为那无论如何谢谢,我会看看一些开发工具。谢谢!我只是错过了'{value}'。
function searchForEvents(value){
    $.ajax({
        method:"POST",
        data: {value: 2},
        url:"{{ path('searchEvents') }}",
        dataType:'json',
        success: function(data){
            //var results = JSON.parse(data.events);
            alert(JSON.stringify(data, null, 4));
            //putEvents(results);
        }
    })
}