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
- Nested type definitions
- Define dependent types inline with a parent type
- Property mapping and dot syntax
- Learn how to customise field names, use dot syntax, and use aggregate functions
- The DataObject model type
- An overview of how the DataObject model can influence the creation of types, queries, and mutations
- DataObject query plugins
- Learn about some of the useful goodies that come pre-packaged with DataObject queries
- DataObject inheritance
- Learn how inheritance is handled in DataObject types
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
Categories, but while we're at it, we want
to specify what fields they should have.
MyProject\Pages\Blog: fields: title: true author: fields: firstName: true surname: true email: true categories: fields: '*'
Alternatively, we could flatten that out:
MyProject\Pages\Blog: fields: title: true author: true categories: true SilverStripe\Securty\Member: fields firstName: true surname: true email: true MyProject\Models\BlogCategory: fields: '*'