final |
|---|
readonly |
Coerces row values to OData v4 wire formats at JSON emission time.
Two property kinds get coerced:
Temporal primitives — MySQL DATETIME/DATE/TIME columns accessed via
raw query builder yield strings like 2026-05-05 12:34:56 (no T, no
offset), which is not a valid Edm.DateTimeOffset literal (RFC 3339
§5.6 mandates T and a Z/numeric offset) and breaks Date.parse()
in Safari. Coercion uses Carbon:
- Edm.DateTimeOffset → Carbon::parse($v)->toRfc3339String()
- Edm.Date → Carbon::parse($v)->toDateString() (Y-m-d)
- Edm.TimeOfDay → Carbon::parse($v)->format('H:i:s')
Already-correct strings round-trip cleanly.
EnumType properties — backing-int values are projected to the symbolic
member name on the wire (tier: 1 → tier: "Single"), the short form
that sap.ui.model.odata.type.Enum parses by default. Unknown ints
pass through unchanged so schema drift is visible rather than masked.
| Methods | ||
|---|---|---|
public
|
__construct(EntityTypeInterface $type)
|
# |
public
|
apply(array<string, mixed> $row): array<string, mixed>
|
# |