Related Attributes
In some cases you may not know the value of the attribute you are trying to match. You can use the related flag with attributes to find Elements and return the ID of a particular attribute.
The related key for attributes works just like the related key for content as described in
Attributes that don't resolve to Element IDs will need to be supported by a Settings integration in order to resolve properly. For example, to resolve the sectionId attribute on an Entry Element, you will need to rely on the Settings Importer for Sections.
# Entries
Below are a few examples of some attributes that can be looked up when importing Entries.
| Attribute | @model |
|---|---|
| authorId | barrelstrength\sproutbaseimport\importers\elements\User |
| sectionId | barrelstrength\sproutbaseimport\importers\settings\Section |
| typeId | barrelstrength\sproutbaseimport\importers\settings\EntryType |
[ { "@model": "barrelstrength\\sproutbaseimport\\importers\\elements\\Entry", "attributes": { "slug": "entry-slug", "postDate": "2017-04-27 16:00:00", "expiryDate": null, "enabled": true, "related": { "authorId": { "@model": "barrelstrength\\sproutbaseimport\\importers\\elements\\User", "params" { "email": "[email protected]" } }, "sectionId": { "@model": "barrelstrength\\sproutbaseimport\\importers\\settings\\Section", "params": { "handle": "news" } }, "typeId": { "@model": "barrelstrength\\sproutbaseimport\\importers\\settings\\EntryType", "params": { "handle": "post" } } } }, "content": { ... } } ] # Categories
Below is an example of importing categories where you may not know the ID of the parent category but can match the parent category by it's slug.
| Attribute | @model |
|---|---|
| newParentId | barrelstrength\sproutbaseimport\importers\elements\Category |
[ { "@model": "barrelstrength\\sproutbaseimport\\importers\\elements\\Category", "attributes": { "groupId": 1, "slug": "category-slug-child", "enabled": true, "related": { "newParentId": { "@model": "barrelstrength\\sproutbaseimport\\importers\\elements\\Category", "params": { "slug": "category-slug" } } } }, "content": { ... } } ] # Users
Below, we match the Users Photo ID attribute by looking up the photo we want to match using the filename in a specific volume.
| Attribute | @model |
|---|---|
| photoId | barrelstrength\sproutbaseimport\importers\elements\Asset |
| groups | barrelstrength\sproutbaseimport\importers\settings\UserGroup |
[ { "@model": "barrelstrength\\sproutbaseimport\\importers\\elements\\User", "attributes": { "username": "beryl01", "firstName": "Luigi", "lastName": "Bednar", "email": "[email protected]", "pending": 1, "lastLoginDate": "2014-12-11 04:12:06", "related": { "photoId": { "@model": "barrelstrength\\sproutbaseimport\\importers\\elements\\Asset", "params": { "filename": "headshot.jpg", "volumeId": 1 } }, "groups": { "@model": "barrelstrength\\sproutbaseimport\\importers\\settings\\UserGroup", "params": { "handle": ["groupOne", "groupTwo"] } } } } } ]