Skip to content

selectDefs

Path: metadata > selectDefs > {EntityType}.

Parameters used by the Select framework that converts search parameters (sent from the front-end) to ORM queries.

accessControlFilterClassNameMap

Class names for access control filters. Classes should implement Espo\Core\Select\AccessControl\Filter interface.

Default filters are available at Espo\Core\Select\AccessControl\Filters.

The mandatory filter is applied for all users. Use if you need to apply some access restrictions for all users (including admin).

Example:

{
    "accessControlFilterClassNameMap": {
        "onlyOwn": "Espo\\Custom\\Classes\\Select\\MyEntityType\\AccessControlFilters\\OnlyOwn",
        "mandatory": "Espo\\Custom\\Classes\\Select\\MyEntityType\\AccessControlFilters\\Mandatory"
    }
}

Available out-of-the-box filters:

  • mandatory
  • all
  • onlyTeam
  • onlyOwn
  • portalAll
  • portalOnlyAccount
  • portalOnlyContact
  • portalOnlyOwn

boolFilterClassNameMap

Class names for bool filters. Classes should implement Espo\Core\Select\Bool\Filter interface.

primaryFilterClassNameMap

Class names for primary filters. Classes should implement Espo\Core\Select\Primary\Filter interface.

Example:

{
    "primaryFilterClassNameMap": {
        "myCustomFilter": "Espo\\Custom\\Classes\\Select\\MyEntityType\\PrimaryFilters\\MyCustomFilter"
    }
}

selectAttributesDependencyMap

Selecting a specific attribute will actually select attributes defined by the map.

Example:

{
    "selectAttributesDependencyMap": {
        "subject": ["name"],
        "personStringData": ["fromString", "fromEmailAddressId"]
    }
}

In the example, when the subject attribute is requested, the name attribute will be selected. We can have the subject field on the list layout but don't have the name field. Without this mapping the name field won't be fetched when we fetch a collection for the list view.

whereItemConverterClassNameMap

Implementations for custom where items.

Example:

{
    "whereItemConverterClassNameMap": {
        "id_isOfType": "Espo\\Classes\\Select\\User\\Where\\ItemConverters\\IsOfType"
    }
}

Classes should implement Espo\Core\Select\Where\ItemConverter interface.

The key format: {fieldName}_{conditionItemType}.

accessControlFilterResolverClassName

A resolver is responsible for choosing an access filter. Should implement Espo\Core\Select\AccessControl\FilterResolver interface.

textFilterClassName

A class that processes the text filter search. Should implement Espo\Core\Select\Text\Filter interface. By default Espo\Core\Select\Text\DefaultFilter is used.

orderItemConverterClassNameMap

An order converter converts order parameters passed from the frontend to an order data acceptable for ORM. One can implement a custom converter for a specific field. E.g. make an address field be ordered by a city (when a user orders by the address column, it will actually order by city).

Classes should implement Espo\Core\Select\Order\ItemConverter interface.

Example:

{
    "orderItemConverterClassNameMap": {
        "someFieldName": "Espo\\Custom\\Classes\\Select\\MyEntityType\\Order\\ItemConverters\\MyConverter"
    }
}

ordererClassNameMap

As of v7.1.

Provides the ability to apply custom order for a specific field.

Classes should implement Espo\Core\Select\Order\Orderer interface.

Example:

{
    "ordererClassNameMap": {
        "someFieldName": "Espo\\Custom\\Classes\\Select\\MyEntityType\\Order\\SomeOrderer"
    }
}