Javascript 操作Json(在传递到视图之前)
我想做的是使用像Javascript 操作Json(在传递到视图之前),javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我想做的是使用像->diffForHumans()这样的函数。当我试图通过ajax获取数据时,我不知道如何在javascript中操作json,所以我决定在服务器级别进行操作 我的$groups数据如下: Group[1]['created_at'] Group[2]['created_at'] Group[3]['created_at'] 我正在使用return$groups->toJson()返回到视图 我有两个问题 我如何操作json,使其能够在处再次创建,但使用diffForHuma
->diffForHumans()
这样的函数。当我试图通过ajax获取数据时,我不知道如何在javascript中操作json,所以我决定在服务器级别进行操作
我的$groups
数据如下:
Group[1]['created_at']
Group[2]['created_at']
Group[3]['created_at']
我正在使用return$groups->toJson()代码>返回到视图
我有两个问题
- 我如何操作json,使其能够在
处再次创建,但使用diffForHumans()函数?因此,我可以稍后在javascript中调用组[I]['created_at']
,并获得每个组的操纵值
{{(strlen($group->body)>150)?substr($group->body),0170.“…:$group->body}}
。因为我使用的是ajax,所以我认为在传入json之前,最好在后端级别执行此函数编辑我的第一个问题: 我能够以
dd($groups[2]['created_at']->diffForHumans()的形式获得它代码>
但是,我无法使其在以下方面起作用:
foreach($groups as $key=>$group) {
dd($group); // collection
dd($key); // 0
dd($group[$key]); // null
}
我不知道如何在javascript中操作json,所以我决定在服务器级别进行操作
您的数据完全可以在Javascript中处理
要在javascript中操作JSON,首先需要将JSON字符串解析为javascript对象。要实现这一点,请在JS中使用JSON.parse()
方法,并像处理任何其他Javascript对象一样访问对象的属性
e、 g
现在,在Javascript中使用组变量可以实现以下功能:
groups[1]['created_at']
关于编辑:变量$groups
是一个集合,因此为了在其中循环,需要将其转换为数组:
$groupsArray = $groups->toArray();
foreach($groupsArray as $key => $group) {
var_dump($group);
var_dump($key);
var_dump($group[$key]); // not possible since $key is the key to $group hence would return null
var_dump($groupsArray[$key]); // use this instead
}
我不知道如何在javascript中操作json,所以我决定在服务器级别进行操作
您的数据完全可以在Javascript中处理
要在javascript中操作JSON,首先需要将JSON字符串解析为javascript对象。要实现这一点,请在JS中使用JSON.parse()
方法,并像处理任何其他Javascript对象一样访问对象的属性
e、 g
现在,在Javascript中使用组变量可以实现以下功能:
groups[1]['created_at']
关于编辑:变量$groups
是一个集合,因此为了在其中循环,需要将其转换为数组:
$groupsArray = $groups->toArray();
foreach($groupsArray as $key => $group) {
var_dump($group);
var_dump($key);
var_dump($group[$key]); // not possible since $key is the key to $group hence would return null
var_dump($groupsArray[$key]); // use this instead
}
您可以使用transform
方法,而不是尝试将对象转换为数组(从而丢失集合和toJson
方法)
$groups->transform(function($item, $key) {
$item->created_at = $item->created_at->diffForHumans();
return $item;
});
return $groups->toJson();
您可以使用transform
方法,而不是尝试将对象转换为数组(从而丢失集合和toJson
方法)
$groups->transform(function($item, $key) {
$item->created_at = $item->created_at->diffForHumans();
return $item;
});
return $groups->toJson();
但是,这样我就不能使用php函数了。我问过php,如果有其他方法可以使用php函数,我很想知道,javascript json。感谢您对您的评论进行编辑。在foreach内部,我尝试了$groupsArray[$key]['created_at']=$group->created_at->diffForHumans()
但是它不起作用。怎么做?我不明白,你想在你的JS中使用$groups
变量吗?你能添加diffForHumans()
方法的定义吗?你不能将它与数组一起使用,一个解决办法是将值传递给它。例如diffForHumans()($groups[1]['created_at'])
。但是,那样的话,我就不能使用php函数了。我在问php,如果有其他使用php函数的方法,在javascript json中,我很想知道。感谢您对您的评论进行编辑。在foreach内部,我尝试了$groupsArray[$key]['created_at']=$group->created_at->diffForHumans()
但是它不起作用。怎么做?我不明白,你想在你的JS中使用$groups
变量吗?你能添加diffForHumans()
方法的定义吗?你不能将它与数组一起使用,一个解决办法是将值传递给它。例如diffForHumans()($groups[1]['created_at'])
。