You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8 分页查询场景下修改返回数据:日期格式化与关联字段筛选

解决方案

1. 修复日期格式化访问器不生效问题

你写的访问器命名存在错误,Laravel 访问器要求命名规范为 get{字段驼峰名}Attribute,注意是单数 Attribute,你写的是复数 Attributes 导致系统无法识别触发,两种实现方案可选:

方案A:修正访问器写法

在Garage模型中修改访问器代码:

public function getDateAttribute($value)
{
    return date_format(date_create($value), 'd/m/Y');
}

方案B:使用$casts属性更简洁(推荐)

直接在Garage模型中添加$casts配置即可,无需手动写访问器,接口序列化时会自动完成格式化:

protected $casts = [
    'date' => 'date:d/m/Y',
    // 其他字段的类型转换可一并在这里配置
];

2. 关联查询仅返回指定字段

预加载关联时可以直接指定需要查询的列,注意必须带上关联的外键字段(这里是rid),否则关联会返回null,修改控制器代码如下:

$q = Garage::with('relative:rid,rname')->paginate(15);
return response()->json($q);

调整后返回的relative关联就只会包含rid和rname两个字段,符合你的需求。

可选优化

如果后续还有更多字段格式化、关联结构裁剪的需求,推荐使用Laravel的API资源类对输出结构做统一管理,避免把格式化逻辑散落在模型和控制器中,维护更方便。

内容的提问来源于stack exchange,提问作者Nathan Bryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:45:03