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