// ❌ This doesn't work - employer data is not fetched
display: [
{
key: "employerName",
label: "Employer Name",
dependsOn: ["employer"],
formatter: ({ row }) => {
const emp = row?.employer;
return `${emp?.user?.firstName ?? ""} ${emp?.user?.lastName ?? ""}`.trim();
},
type: "scalar"
}
]
// ✅ This works - but requires showing the raw relation column
display: [
"employer", // Must include this for the virtual field to work
{
key: "employerName",
label: "Employer Name",
dependsOn: ["employer"],
formatter: ({ row }) => {
const emp = row?.employer;
return `${emp?.user?.firstName ?? ""} ${emp?.user?.lastName ?? ""}`.trim();
},
type: "scalar"
}
]
Summary
When using a virtual field with
dependsOnreferencing a relation, the relation data is not fetched unless the relation is also explicitly included in thedisplayarray.Basic Example
Expected behavior:
dependsOn: ["employer"]should trigger fetching theemployerrelation (and ideally its nested relations likeemployer.user), allowing virtual fields to replace relation columns entirely.Current behavior:
dependsOnonly declares a dependency but doesn't affect the Prisma query. The relation must be separately included indisplay, which defeats the purpose of creating a custom virtual field to replace it.Additional context:
dependsOn: ["employer.user"]) would also be valuable for formatting deeply nested data.Drawbacks
No response
Unresolved questions
No response