13

如何将此 Laravel 集合数组转换为 json 格式,如下所示。

//All records from users table.
$users = DB::table('users')->get();

// Required json format.
return '{
          "data": [

            {
              "DT_RowId": "row_1",
              "id": "Tiger",
              "clear": "Nixon",
              "fsssf": "System Architect",
              "tex": "t.nixon@datatables.net",
              "created_at": "Edinburgh",
              "updated_at": "Edinburgh"
            },
             {
              "DT_RowId": "row_2",
              "id": "Tiger",
              "clear": "Nixon",
              "fsssf": "System Architect",
              "tex": "t.nixon@datatables.net",
              "created_at": "Edinburgh",
              "updated_at": "Edinburgh"
            }

          ],
  "options": [],
  "files": []
}';

很抱歉这个基本问题,但我无法将它转换成这个 jso。

4

6 回答 6

30

看看文档

您可以使用 toJson() 将集合转换为 json 对象。

$users = DB::table('users')->get()->toJson();
dd($users);

您也可以使用 json_encode 函数以简单的 php 方式执行此操作

$users = json_encode($users);

看看这个链接

问候和快乐的编码!

于 2017-09-18T10:17:30.723 回答
9

如果您正在考虑使用刀片模板,您可以使用@json Blade 指令,如下所示:

<script type="text/javascript">
    var PARAMS = @json($params)
</script>

PS在 Laravel 5.6 中测试

于 2018-05-22T00:45:45.193 回答
5

添加“使用响应;”

return Response::json([
    'data' => $value
], 200);

希望这可以帮助!

于 2017-09-18T09:58:28.707 回答
2

您可以做几件事,您可以像这样使用默认方法 ->toJson() 和用户集合

$users = DB::table('users')->get();
$users->toJson();

如果您确实遇到问题,您可以在 json_encode 方法中构建 php,这是完整的文档http://php.net/manual/en/function.json-encode.php

$users = DB::table('users')->get();
json_encode($users)

希望这可以帮助!

于 2017-09-18T09:24:53.290 回答
1

如果我们是 laravel 5.5,那么你应该使用 eloquent-resources

于 2017-09-18T09:17:59.370 回答
0

在 Laravel 中,您可以像这样轻松地序列化您的 php 对象:

public static function getLocataireByCin($cin)
    {
        return Locataire::where('cin', $cin)
            ->first()
            ->toJson(JSON_PRETTY_PRINT);
    }

然后在前端检索它(例如使用 js/jquery):

$("#cinLocataire").keyup(function () {
        $.ajax({
            url: "{{ route('Caisse.store') }}",
            type: "POST",
            data: {
                cin: $(this).val()
            },
            success: function (locataireData) {
                var locataire = JSON.parse(locataireData); // <-- here
                console.log(
                    locataire.nom
                );
            },
        })
    });
于 2020-10-18T21:56:39.243 回答