You are viewing documentation for an outdated version. It is no longer supported!

Conditions

Inspired heavily by Laravel's Collectionsopen in new window, the when() and unless() methods give you the possibility to invoke callbacks, when a condition evaluates to true.

When

when() invokes a callback, if it's first argument evaluates to true.

use Aedart\Contracts\Http\Clients\Requests\Builder;

$builder = $client
        ->when(true, function(Builder $builder){
            $builder->where('name', 'john');
        });

If the first argument evaluate to false, then the method will invoke it's "otherwise" callback, if one is provided.

use Aedart\Contracts\Http\Clients\Requests\Builder;

$builder = $client
        ->when(false, function(Builder $builder){
            // Not invoked...
            $builder->where('name', 'John');
        }, function(Builder $builder){
            // Invoked...
            $builder->where('name', 'Simon');
        });

Unless

The inverse method, unless(), will invoke it's callback if the first argument is not true.

use Aedart\Contracts\Http\Clients\Requests\Builder;

$builder = $client
        ->unless(false, function(Builder $builder){
            $builder->where('name', 'john');
        });

Consequently, if the first argument is true, then it's "otherwise" callback is invoked, when provided.

use Aedart\Contracts\Http\Clients\Requests\Builder;

$builder = $client
        ->unless(true, function(Builder $builder){
            // Not invoked...
            $builder->where('name', 'John');
        }, function(Builder $builder){
            // Invoked...
            $builder->where('name', 'Simon');
        });