BasicSearchContext
class BasicSearchContext extends SearchContext (View source)
A SearchContext that can be used with non-ORM data.
This class isn't guaranteed to respect the full searchable fields spec defined on DataObject classes.
Traits
Provides extensions to this object to integrate it with standard config API methods.
A class that can be instantiated or replaced via DI
Config options
general_search_field_name | Name of the field which, if included in search forms passed to this object, will be used to search across all searchable fields. |
Properties
protected | T> | $modelClass | DataObject subclass to which search parameters relate to. |
from SearchContext |
protected | FieldList | $fields | FormFields mapping to DataObject::$db properties which are supposed to be searchable. |
from SearchContext |
protected | SearchFilter[] | $filters | Array of SearchFilter subclasses. |
from SearchContext |
protected | array | $searchParams | Key/value pairs of search fields to search terms |
from SearchContext |
Methods
An implementation of the factory method, allows you to create an instance of a class
Creates a class instance by the "singleton" design pattern.
A key value pair of values that should be searched for.
Returns a result set from the given search parameters.
Callback map function to filter fields with empty values from being included in the search expression.
Accessor for the filter attached to a named field.
Get the list of searchable fields in the current search context.
Removes an existing formfield instance by its name.
Gets a list of what fields were searched and the values provided for each field. Returns an ArrayList of ArrayData, suitable for rendering on a template.
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
Gets the uninherited value for the given config option
Details
static Injectable
create(mixed ...$args)
An implementation of the factory method, allows you to create an instance of a class
This method will defer class substitution to the Injector API, which can be customised via the Config API to declare substitution classes.
This can be called in one of two ways - either calling via the class directly, or calling on Object and passing the class name as the first parameter. The following are equivalent: $list = DataList::create(SiteTree::class); $list = SiteTree::get();
static Injectable
singleton(string $class = null)
Creates a class instance by the "singleton" design pattern.
It will always return the same instance for this class, which can be used for performance reasons and as a simple way to access instance methods which don't rely on instance data (e.g. the custom SilverStripe static handling).
__construct(T> $modelClass, FieldList $fields = null, array $filters = null)
A key value pair of values that should be searched for.
The keys should match the field names specified in SearchContext::$fields. Usually these values come from a submitted searchform in the form of a $_REQUEST object. CAUTION: All values should be treated as insecure client input.
FieldList
getSearchFields()
Returns scaffolded search fields for UI.
protected
applyBaseTableFields()
No description
T>
getQuery(array $searchParams, array|bool|string $sort = false, int|array|null $limit = false, DataList $existingQuery = null)
Returns a list which has been limited, sorted, and filtered by the given parameters.
T>
getResults(array $searchParams, array|bool|string $sort = false, array|null|string $limit = null)
Returns a result set from the given search parameters.
bool
clearEmptySearchFields(mixed $value)
Callback map function to filter fields with empty values from being included in the search expression.
SearchFilter|null
getFilter(string $name)
Accessor for the filter attached to a named field.
SearchFilter[]
getFilters()
Get the map of filters in the current search context.
setFilters(SearchFilter[] $filters)
Overwrite the current search context filter map.
addFilter(SearchFilter $filter)
Adds a instance of SearchFilter.
removeFilterByName(string $name)
Removes a filter by name.
FieldList
getFields()
Get the list of searchable fields in the current search context.
setFields(FieldList $fields)
Apply a list of searchable fields to the current search context.
addField(FormField $field)
Adds a new FormField instance.
removeFieldByName(string $fieldName)
Removes an existing formfield instance by its name.
$this
setSearchParams(array|HTTPRequest $searchParams)
Set search param values
array
getSearchParams()
No description
ArrayData>
getSummary()
Gets a list of what fields were searched and the values provided for each field. Returns an ArrayList of ArrayData, suitable for rendering on a template.
static Config_ForClass
config()
Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).
mixed
uninherited(string $name)
Gets the uninherited value for the given config option