Text Scope

Text Scope

Filter Scope

text - filter using a plain text input with either exact or contains condition logic.

username:
    label: Username
    type: text

The following properties are available for the filter.

Property Description
conditions for each condition, set to true or false to make it available, or as a string, can be custom SQL statement for selected conditions. Default: true.
modelScope applies a model query scope method to the filter query, can be a model method name or a static PHP class method (Class::method). The first argument will contain the model that the widget will be attaching its value to, i.e. the parent model.

The following conditions are available for filtering.

Condition Description
equals is matching the exact text
contains contains the text

To only allow finding the exact text pass equals as a condition. To find results that contain any part of the text pass contains to the conditions instead.

username:
    label: Username
    type: text
    conditions:
        equals: true

You may pass custom SQL to the conditions as a string where :value contains the filtered value.

username:
    label: Username
    type: text
    conditions:
        equals: username = :value
        contains: username like %:value%

# PHP Interface

You may define a custom modelScope in the model using the following example.

username:
    label: Username
    type: text
    modelScope: textFilter

The scopeTextFilter method definition where the value is found in $scope->value.

function scopeTextFilter($query, $scope)
{
    if ($scope->condition === 'equals') {
        $query->where('username', $scope->value);
    }
    else {
        $query->where('username', 'LIKE', "%{$scope->value}%");
    }
}
On This Page