Working with DataObjects
- DataObject query plugins
- Learn about some of the useful goodies that come pre-packaged with DataObject queries
- 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
- DataObject inheritance
- Learn how inheritance is handled in DataObject types
- Property mapping and dot syntax
- Learn how to customise field names, use dot syntax, and use aggregate functions
- Nested type definitions
- Define dependent types inline with a parent type
- The DataObject model type
- An overview of how the DataObject model can influence the creation of types, queries, and mutations
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: '*'