Lavary\Menu\Builder::filterRecursive PHP Method

filterRecursive() public method

Filter items recursively
public filterRecursive ( string $attribute, mixed $value ) : Lavary\Menu\Collection
$attribute string
$value mixed
return Lavary\Menu\Collection
    public function filterRecursive($attribute, $value)
    {
        $collection = new Collection();
        // Iterate over all the items in the main collection
        $this->items->each(function ($item) use($attribute, $value, &$collection) {
            if (!$this->hasProperty($attribute)) {
                return false;
            }
            if ($item->{$attribute} == $value) {
                $collection->push($item);
                // Check if item has any children
                if ($item->hasChildren()) {
                    $collection = $collection->merge($this->filterRecursive($attribute, $item->id));
                }
            }
        });
        return $collection;
    }