【问题标题】:Issue with sending model object in json response laravel 5.6.12在 json 响应 laravel 5.6.12 中发送模型对象的问题
【发布时间】:2018-09-16 02:13:17
【问题描述】:

Laravel 5.6.12

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

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

并将其发送到从那里学到的 JavaScript Documentation

现在我想从模型对象中获取特定数据。我通过 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"}]}

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

阿贾克斯

  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

【问题讨论】:

  • 显示你的 ajax 代码

标签: php json ajax laravel-5.6


【解决方案1】:

如果要获取所有用户,则需要遍历数组;

例如

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>

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

【讨论】:

  • 你的答案是正确的,它的工作,但为什么它不能在我的 ajax 函数中工作,请查看我的代码我做错了什么。
  • @Ibrahim 我已经为你更新了答案 - 希望这会有所帮助。
猜你喜欢
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 2017-08-28
  • 2022-01-09
  • 2019-02-22
  • 2019-10-12
相关资源
最近更新 更多