在json response laravel 5.6.12中发送模型对象的问题

时间:2018-04-06 05:48:50

标签: php json ajax laravel-5.6

Laravel 5.6.12

我正在尝试获取数据库模型

$data = \App\Data::all();
return response()->json(
["data" => $data]);

并将其发送到从Documentation

获取的JavaScript

现在我想从模型对象中获取特定数据。我通过JavaScript(jQuery)ajax收到它。成功后,我收到了它。但我必须使用JSON.Stringify()将其转换为字符串,当我尝试显示它时,给我这个数据

{"data":[{"id":1,"name":"Ibrahim","fatherName":"Ahmed","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"},{"id":2,"name":"Haris","fatherName":"Shabir","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"}]}

我只需要知道什么类型的数据格式返回响应() - > json()以及为什么我需要它将它转换为字符串以及如何才能详细访问所有名称。数据库模型中有两行,可以有更多行。 我将输出格式放在小提琴上以访问所有名称fiddle

的Ajax

  function ajax(event) {
        var x = "";
        event.preventDefault();
        $.ajax({
            type: "POST",
            url: " {{ route('ajax') }}",
            data: {_token: "{{ Session::token() }}"},
            dataType: 'JSON',
            success : function (data) {
            if (data)
                {
                    data2 = JSON.stringify(data);
                     $("#demo").html(data2); // this give above whole output
                }

            },
            error: function (xhr,ajaxOp,errors) {
                $("#demo").html(errors);
            }
        });
    }

这是ajax

1 个答案:

答案 0 :(得分:0)

如果你想获得所有用户,你需要遍历数组;

e.g。

var data = {"data":[{"id":1,"name":"Ibrahim","fatherName":"Ahmed","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"},{"id":2,"name":"Haris","fatherName":"Shabir","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"}]};


var users = "";

for(i = 0; i < data.data.length; i++) { 
    users += data.data[i].name + "<br>";
}

document.getElementById("done").innerHTML = users;

使用你的例子,你可以尝试;

<script>
    function ajax(event) {
        var x = "";
        event.preventDefault();
        $.ajax({
            type: "POST",
            url: " {{ route('ajax') }}",
            data: {_token: "{{ Session::token() }}"},
            dataType: 'JSON',
            success : function (data) {
                if (data)
                {
                    var users = '';

                    for(i = 0; i < data.data.length; i++) {
                        users += data.data[i].name + "<br>";
                    }

                    $("#demo").html(users); // this give above whole output
                }

            },
            error: function (xhr,ajaxOp,errors) {
                $("#demo").html(errors);
            }
        });
    }

</script>

您不需要对数据进行字符串化。