Caffeinated\Menus\Builder::filterRecursively PHP Method

filterRecursively() public method

Filter menu items recursively.
public filterRecursively ( string $attribute, mixed $value ) : Caffeinated\Menus\Collection
$attribute string
$value mixed
return Caffeinated\Menus\Collection
    public function filterRecursively($attribute, $value)
    {
        $collection = new Collection();
        $this->items->each(function ($item) use($attribute, $value, &$collection) {
            if (!property_exists($item, $attribute)) {
                return $false;
            }
            if ($item->{$attribute} == $value) {
                $collection->push($item);
                if ($item->hasChildren()) {
                    $collection = $collection->merge($this->filterRecursively($attribute, $item->id));
                }
            }
        });
        return $collection;
    }