php - Laravel 在关系调用中投射一个字段
问题描述
当我调用模型集合时,我有时会将日期字段转换为特定格式:
$shifts = Shift::where('some_field', 'some_value')
->withLinkedShifts()
->withCasts([
'date' => 'date:Y-m-d',
...
])->get();
“withLinkedShifts()”作用域调用了一个名为linked_shifts的关系,它是与被调用实例相关的班次实例。此转换适用于被调用模型的日期字段,但它不适用于linked_shifts关系中班次的日期字段。如何在linked_shifts关系中投射日期而无需编辑模型?
解决方案
在linked_shifts
模型本身中,您应该指出日期:
class LinkedShifts extends Model {
protected $dates = [
'date'
];
// OR
protected $casts = [
'date' => 'date:Y-m-d'
];
}
推荐阅读
- docker - Docker:在构建文件时将文件从容器中复制出来
- reactjs - reactjs更新操作出现问题
- python - 无法让 Python 从站点解析 JSON
- excel - 如何为文本框中的值编写 IF THEN ELSE 语句?
- sql - 无法在 SQL Server 中的 where 条件下访问多个 where 案例
- javascript - Selenium Remote 不会像真正的浏览器那样继续过去的 JavaScript 错误
- haskell - 在 Haskell 中,当使用 XStrict 语言扩展时,是否会短路?
- javascript - 使用 Javascript 从 DOM 收集详细信息以添加到数组
- python - 如何在列表末尾找到连续零的索引?
- python - Python 向量类类型不可散列