gpt4 book ai didi

php - Laravel - 当集合作为 JSON 返回时访问器不起作用

转载 作者:可可西里 更新时间:2023-10-31 22:40:43 29 4
gpt4 key购买 nike

我正在使用 Laravel 为 VueJS 前端 SPA 构建 API。

我需要接受日期并将其返回为“d-m-Y”,而不是存储在数据库中的“Y-m-d”。数据突变器工作正常,我设法在给定日期正确保存它,但是当我运行时:

$active = Announcement::where('group_id', $this->user->group_id)->where('dateTo', '>=', Carbon::today())->get();
return response()->json($active);

我正在获取纯数据库数据,而不是对其进行格式化。例如,我有一个需要格式化的 dateTo 字段:

 public function getDateToAttribute($value)
{
$date = Carbon::createFromFormat('Y-m-d', $value);
return $date->format('d-m-Y');
}

我该怎么办?

最佳答案

正如@Jared 所说,访问器/修改器仅在您的应用程序调用时存在。因此,在以 JSON 形式返回的集合中,不存在访问器/修改器。做一个循环来调用所有你需要的访问器/修改器太胖了,但是 Laravel 有一个内置的解决方案

在您的模型 Announcement.php 中,您只需指定将始终附加在您的请求中的访问器/修改器。

protected $appends = array('dateTo');

使用此解决方案,每个请求都将包含一个 dateTo 参数,格式随意。

问候!

附言:您可以根据您的请求更改$appends 数组,因此所有返回JSON 的请求都将发送dateTo 参数, 但另一个不会。

关于php - Laravel - 当集合作为 JSON 返回时访问器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39082466/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com