Many to Many plugin for Craft CMS

适用于 CraftCMS 的字段类型插件,可管理双方的关系。「A Field Type plugin for CraftCMS that allows the management of relationships from both sides」

  • 所有者: verbb/many-to-many
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Many to Many Field Type plugin for Craft 3

Many to Many is a Craft CMS plugin developed by Pageworks and updated to support Craft 3 by Oberon. This plugin allows you to manage relationships in Craft from either of the entries that belong to the association. For example, if you have a recipe with many ingredients, and ingredients that belong to many recipes, you can manage the relationship from either the Recipe's entry or the Ingredient's entry.

Requirements

This plugin requires Craft CMS 3.0.0-beta.28 or later.

Installation

To install the plugin, follow these instructions.

  1. Open your terminal and go to your Craft project:

     cd /path/to/project
    
  2. Then tell Composer to load the plugin:

     composer require page-8/craft-manytomany
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for Many to Many Field Type.

Usage

  1. Create your initial relationship field using the Entries Field Type and attach it to your first section
  • This is done directly through Craft's native "Entries" field type
  • This example assumes this is done on the "Recipes" section creating a field called "Related Ingredients" that allows entries from the Ingredients section
    Recipes Screen
  1. Create another field that attaches the relationship using the Many to Many field type
  • This is done by creating a new field and selecting the Many to Many field type
  1. Customize your Settings
  • Linked Section will be the initial section that contains the relationship. (in our example Recipes)
  • Associated Field is the field on the other end of this relationship. (in our example Related Ingredients)
    Settings Screen
  1. Attach the newly created Many to Many field to your section
    Ingredients Screen

Template Usage

Since this plugin relies on Craft's built in relationships, you can continue to use relationships just as you always have.

Recipes showing Related Ingredients

<h1>Related Ingredients</h1>
{% set relatedIngredients = craft.entries.section('ingredients').relatedTo(entry).all() %}
{% for ingredient in relatedIngredients %}
    {{ ingredient.title }}<br />
{% endfor %}

Ingredients showing Related Recipes

<h1>Related Recipes</h1>
{% set relatedRecipes = craft.entries.section('recipes').relatedTo(entry).all() %}
{% for recipe in relatedRecipes %}
    {{ recipe.title }}<br />
{% endfor %}

Feedback?

Contact us on Twitter @teampageworks or visit us at page.works

Version History

  • 1.0.0 - Release form Craft 3 by contributor Oberon
  • 0.1.2 - Added translatable text
  • 0.1.1 - Optimized the cache control. Instead of clearing all Entry types from the cache, just clears records related to the changed element
  • 0.1.0 - Initial Release

To Do

  1. Allow the field to work across all (or at least more) Element Types. Currently only supports Entries.
  2. Allow custom ordering of the secondary relationship. Currently you can only order the primary relationship (by Craft's native ordering of the Entries field type).
  3. Fix a bug that doesn't allow it to work from the modal tab.
  4. Other stuff I assume.

Notes

  • Currently doesn't support locales
  • As always, use at your own risk

License

This work is licenced under the MIT license.

主要指标

概览
名称与所有者verbb/many-to-many
主编程语言PHP
编程语言PHP (语言数: 3)
平台
许可证MIT License
所有者活动
创建于2014-07-11 22:00:59
推送于2025-09-16 03:17:01
最后一次提交
发布数23
最新版本名称4.0.3 (发布于 )
第一版名称0.1.2 (发布于 )
用户参与
星数81
关注者数8
派生数17
提交数144
已启用问题?
问题数34
打开的问题数9
拉请求数14
打开的拉请求数0
关闭的拉请求数3
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?