javascript - 覆盖集合中的原始值

标签 javascript php ajax laravel

我正在从数据库中获取数据并将其存储在$groups上。它有不同的created_at对于每个条目。

我想覆盖created_at集合中的字段,就在将其返回到 View 之前,并且有很好的 ->diffForHumans()版本。

$groupsArray = $messages;

foreach($groupsArray as $key => $group) {

 var_dump($groupsArray[$key]['created_at']); // works: 2015-10-17 21:55:46.000000'

 var_dump($groupsArray[$key]['created_at']->diffForHumans()); // Error: A two digit month could not be found Data missing

 $groupsArray[$key]['created_at'] = $groupsArray[$key]['created_at']->diffForHumans();   // Not Working

}

return $groupsArray->toJson();

如果我改变groupsArray = $messages->toArray(); ,上述 block 的“//错误”位更改为 Call to a member function diffForHumans() on string .

最终,我需要将其作为 json 返回,因为它是 ajax 请求。我想覆盖 created_at ,所以我可以使用group[i]['created_at']在 View 中的 javascript 部分中,返回并获取 Carbon 版本后。

最佳答案

首先,确保“created_at”位于模型的 $dates 数组中。 就像 http://laravel.com/docs/5.1/eloquent-mutators#date-mutators 上描述的那样 其次,您可以通过执行以下操作来迭代和更新集合:

$messages->transform(function ($item, $key) {
    $item->difference = $item->created_at->diffForHumans(); // 10 hrs ago
    return $item;
});
$messages->toJson();

关于javascript - 覆盖集合中的原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33194717/

相关文章:

javascript - 从一个 Controller 调用另一个

破折号后的PHP大写

javascript - jQuery ajaxSetup 方法是否不适用于 $.get 或 $.post?

JavaScript 调整大小事件

javascript - 如果另一个 div 宽度达到其位置,如何将类添加到元素

javascript - 查看 Angular 中的更新问题

php - 使用PDO在WHERE中选择在PHP中进行准备

php - CKEditor + Yii 加载 AJAX : $_POST doesn't contain the updated value

javascript - jQuery AJAX 中的另一个函数完成后重新运行原始函数

javascript - AJAX 问题处理响应数据显示