Version 4
supported
This version of Silverstripe CMS is still supported though will not receive any additional features.
Go to documentation for the most recent stable version.
Working with DataObject
models
- Adding DataObject models to the schema
- 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 model types
- Versioned content
- A guide on how DataObject models 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
- Nested type definitions
- Define dependent types inline with a parent type
- DataObject operation permissions
- A look at how permissions work for DataObject queries and mutations
You are viewing docs for silverstripe/graphql 4.x. If you are using 3.x, documentation can be found in the GitHub repository
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.