Number Scope
Filter Scope
number - filter using a numeric value using exact, between, greater and lesser condition logic.
age:
label: Age
type: number
conditions:
greater: true
The following properties are available for the filter.
| Property | Description |
|---|---|
| default | specifies a default value for the filter. |
| 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 |
|---|---|
| exact | is matching the exact number |
| between | is between two supplied numbers |
| greater | is greater than the supplied number |
| lesser | is less than the supplied number |
You may set default value to set the default filter value.
age:
label: Age
type: number
default: 14
You may pass custom SQL to the conditions as a string where :value, :min and :max contain the filtered values.
age:
label: Age
type: number
conditions:
greater: age >= :value
between: age >= :min and age <= :max
# PHP Interface
You may define a custom modelScope in the model using the following example.
age:
label: Age
type: number
modelScope: numberFilter
The scopeNumberFilter method definition with values found in $scope->value, $scope->min and $scope->max.
function scopeNumberFilter($query, $scope)
{
if ($scope->condition === 'equals') {
$query->where('age', $scope->value);
}
elseif ($scope->condition === 'between') {
$query
->where('age', '>=', $scope->min)
->where('age', '<=', $scope->max);
}
elseif ($scope->condition === 'greater') {
$query->where('age', '>=', $scope->value);
}
else {
$query->where('age', '<=', $scope->value);
}
}