I would like to specify a relationship between nodeTypes, one to many or many to many, what’s the best practice to go about it ?
Specifically in my case, I need a one-to-many relationship, so I was thinking of defining an array of NodeChildren into my parent NodeType definition, but that’s not exactly what I want (neither do I know how to do it). What I want, is to link existing nodeTypes into another nodeType, not creating new ones.
So, how do you define non-hierarchical nodeType relationships in Neos ?
UPDATE: To help you understand the problem better, I need to specify a list of users that belong to a team and then on the team’s page I will try to render the data of the team that the logged-in user belongs to. But the problem now is how to assign users to teams.
You can use the type reference or references here:
Your.Package:User:
properties:
'team':
# Selecting a single team/reference
type: reference
ui:
inspector:
editorOptions:
nodeTypes: ['Your.Package:Team']
'teams':
# Selecting multiple teams/references
type: references
# the rest is the same as above
Then in your fusion file check if the member is linked:
prototype(Your.Package:Team) {
members = Neos.Fusion:Collection {
collection = ${q(site).find('[instanceof Your.Package:Member]')}
itemName = 'member'
itemRenderer = Neos.Fusion:Case {
isInTeam {
condition = ${Array.indexOf(q(member).property('teams'), node) >= 0}
# if you use only a single team, use
# "${q(member).property('team') == node}" here.
type = 'Your.Package:MemberInTeam'
# create custom prototype for output in team overview!
}
default {
condition = TRUE
renderer = ''
}
}
}
}
Hope this helps and i didn’t miss sth. in my answer.