Enforces required relation fields in Strapi to be non-empty on save or publish.
- Strapi v5.x (supported)
- Strapi v4.x (untested)
You just need to install the strapi-plugin-required-relation-field package via npm or yarn at the root of your Strapi project:
npm:
npm i strapi-plugin-required-relation-fieldyarn:
yarn add strapi-plugin-required-relation-fieldSimply set required: true for relations in your schemas, and everything will work out-of-the-box. For example:
# src/api/story-reaction/content-types/story-reaction/schema.json
{
"kind": "collectionType",
"collectionName": "story_reactions",
"info": {
"singularName": "story-reaction",
"pluralName": "story-reactions",
"displayName": "Story Reaction",
"description": ""
},
"options": {
"draftAndPublish": false
},
"attributes": {
"story": {
"type": "relation",
"relation": "manyToOne",
"target": "api::story.story",
"inversedBy": "storyReactions",
"required": true
},
"user": {
"type": "relation",
"relation": "manyToOne",
"target": "plugin::users-permissions.user",
"inversedBy": "storyReactions",
"required": true
},
"reaction": {
"type": "relation",
"relation": "manyToOne",
"target": "api::reaction.reaction",
"inversedBy": "storyReactions",
"required": true
}
}
}To test the plugin during development, build it with the watch:link command:
yarn watch:linkNext, link it to a local Strapi project. In a new terminal window, run:
cd /path/to/strapi/project
yarn dlx yalc add --link strapi-plugin-required-relation-field
yarn installSince this plugin is installed via node_modules, you don't need to explicitly add it to your plugins configuration file. Running the develop command will automatically detect the plugin.
Start your Strapi project with:
yarn developYou are now ready to contribute the plugin. Please note that any server changes will require a restart to take effect.
