Version 5
supported
Working with DataObjects
- DataObject operation permissions
- A look at how permissions work for DataObject queries and mutations
- Versioned content
- A guide on how DataObjects with the Versioned extension behave in GraphQL schemas
- Property mapping and dot syntax
- Learn how to customise field names, use dot syntax, and use aggregate functions
- Adding DataObjects to the schema
- An overview of how the DataObject model can influence the creation of types, queries, and mutations
- DataObject inheritance
- Learn how inheritance is handled in DataObject types
- Nested type definitions
- Define dependent types inline with a parent type
- DataObject query plugins
- Learn about some of the useful goodies that come pre-packaged with DataObject queries
Nested type definitions
For readability and ergonomics, you can take advantage of nested type definitions. Let's imagine
we have a Blog
and we want to expose Author
and Categories
, but while we're at it, we want
to specify what fields they should have.
app/_graphql/models.yml
MyProject\Pages\Blog:
fields:
title: true
author:
fields:
firstName: true
surname: true
email: true
categories:
fields: '*'
Alternatively, we could flatten that out:
app/_graphql/models.yml
MyProject\Pages\Blog:
fields:
title: true
author: true
categories: true
SilverStripe\Security\Member:
fields:
firstName: true
surname: true
email: true
MyProject\Models\BlogCategory:
fields: '*'
You cannot define operations on nested types. They only accept fields.