Tags provide a way to relate otherwise unrelated models, enabling features like dynamic collections.
Overview
Tags provide a way to relate otherwise unrelated models in the system. They also impact other features such as Dynamic Collections.
For example, two products “Blue T-Shirt” and “Blue Shoes” are unrelated by nature, but adding a BLUE tag to each product allows a Dynamic Collection to include any products with that tag.
Fields
Tags are automatically converted to uppercase whenever the value attribute is set, including through syncTags.
To enable tagging on a model, add the HasTags trait:
Tags can then be attached using syncTags:
The syncTags method accepts a collection of tag value strings, not Tag model instances. It finds or creates a Lunar\Core\Models\Tag for each value and syncs the model’s tags relationship to them. Values are automatically converted to uppercase. The sync process runs via a queued job (Lunar\Core\Jobs\SyncTags), so changes may not be reflected immediately if using an asynchronous queue driver.