Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何正确格式化JSON Laravel 5.5_Php_Json_Laravel_Laravel 5 - Fatal编程技术网

Php 如何正确格式化JSON Laravel 5.5

Php 如何正确格式化JSON Laravel 5.5,php,json,laravel,laravel-5,Php,Json,Laravel,Laravel 5,我正在尝试将事件加载到日历中 因此,我需要使用事件数据创建一个JSONstring,但我不知道如何实现 如何创建数据: $tickets = Ticket::where('mechanic_id', $request->mechanic_id)->get(); $tickets_json[] = []; foreach($tickets as $ticket) { $tickets_json['title'] = $ticket->number; $tick

我正在尝试将事件加载到日历中

因此,我需要使用事件数据创建一个JSONstring,但我不知道如何实现

如何创建数据:

$tickets = Ticket::where('mechanic_id', $request->mechanic_id)->get();

$tickets_json[] = [];

foreach($tickets as $ticket) {
    $tickets_json['title'] = $ticket->number;
    $tickets_json['start'] = $ticket->planned_timestamp_start->format('d-m-Y H:i');
    $tickets_json['end'] = $ticket->planned_timestamp_end->format('d-m-Y H:i');
    $tickets_json['url'] = '/tickets/' . $ticket->id;
}
这将返回:

array:5 [▼
  0 => []
  "title" => "452"
  "start" => "27-10-2017 09:00"
  "end" => "27-10-2017 12:00"
  "url" => "/tickets/2"
]
这不是我想要和需要的

我需要这样:

{
title: '63782136',
start: '27-10-2017 09:00',
end: '"27-10-2017 12:00"',
url: '/tickets/2'
},  
{
title: '23123',
start: '27-10-2017 09:00',
end: '"27-10-2017 12:00"',
url: '/tickets/3'
},  
{
title: '432512',
start: '27-10-2017 09:00',
end: '"27-10-2017 12:00"',
url: '/tickets/4'
},  
我试过:

returnresponse()->json($tickets\u json)

但不返回正确的格式:

#data: "{"0":[],"title":"452","start":"27-10-2017 09:00","end":"27-10-2017 12:00","url":"\/tickets\/2"}"
它添加了{“0”:[],}


提前感谢。

当您希望将数据分配到数组的第一维度时,您犯了将数据分配到数组的第二维度的错误。下面应该可以做到这一点:

$tickets_json = [];

$tickets->each(function ($ticket) use (&$tickets_json) {
    $tickets_json[] = [
        'title' => $ticket->numer,
        'start' => $ticket->planned_timestamp_start->format('d-m-Y H:i'),
        'end' => $ticket->planned_timestamp_end->format('d-m-Y H:i'),
        'url' => '/tickets/' . $ticket->id
    ];
});

return $tickets_json;
此代码将为您提供一个正确的格式化数组,您可以使用该数组获得以下JSON输出:

[
    {
        "title": "63782136",
        "start": "27-10-2017 09:00",
        "end": "27-10-2017 12:00",
        "url": "/tickets/2"
    },  
    {
        "title": "23123",
        "start": "27-10-2017 09:00",
        "end": "27-10-2017 12:00",
        "url": "/tickets/3"
    }
]

当您希望将数据分配到数组的第一维度时,您犯了将数据分配到数组的第二维度的错误。下面应该可以做到这一点:

$tickets_json = [];

$tickets->each(function ($ticket) use (&$tickets_json) {
    $tickets_json[] = [
        'title' => $ticket->numer,
        'start' => $ticket->planned_timestamp_start->format('d-m-Y H:i'),
        'end' => $ticket->planned_timestamp_end->format('d-m-Y H:i'),
        'url' => '/tickets/' . $ticket->id
    ];
});

return $tickets_json;
此代码将为您提供一个正确的格式化数组,您可以使用该数组获得以下JSON输出:

[
    {
        "title": "63782136",
        "start": "27-10-2017 09:00",
        "end": "27-10-2017 12:00",
        "url": "/tickets/2"
    },  
    {
        "title": "23123",
        "start": "27-10-2017 09:00",
        "end": "27-10-2017 12:00",
        "url": "/tickets/3"
    }
]

更改
$tickets\u json[]=[]
$tickets\u json=[]。但我需要一列多张票只需返回$tickets?如果您要发出get请求,默认情况下,它会将数据转换为json数组
$tickets\u json=[]。但我需要一列多张票只需返回$tickets?如果你发出get请求,默认情况下它会将数据转换成json数组。天哪,这正是我所需要的。非常感谢您在批准期限允许的情况下批准我的回答。天哪,这正是我所需要的。非常感谢您在批准限额允许的情况下批准回答。