$pages->when()
The when method only executes the given Closure when the first parameter is true. If the first parameter is false, the Closure will not be executed.
$pages->when(mixed $condition, Closure $callback, Closure $fallback = null): mixedParameters
| Name | Type | Default | 
|---|---|---|
| $condition * | mixed | – | 
| $callback * | Closure | – | 
| $fallback | Closure | null | 
Return type
mixed
Parent class
  Kirby\Cms\Pages    inherited from Kirby\Toolkit\Collection  
Examples
Apply the filter method only if the first parameter evaluates to true:
$size  = get('size');
$color = get('color');
$fit   = get('fit');
$products = $page->children()
    ->when($size, function ($size) {
        return $this->filterBy('size', $size);
    })
    ->when($color, function ($color) {
        return $this->filterBy('color', $color);
    })
    ->when($price, function ($fit) {
        return $this->filterBy('style', $fit);
    });With a fallback if the first parameter does not evaluate to true:
$sortBy = false;
$articles = $page->children()
    ->when($sortBy, function ($sortBy) {
        return $this->sortBy($sortBy);
    }, function () {
        return $this->sortBy('title');
    });