PHPackages                             xire28/redbean-traversing - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. xire28/redbean-traversing

ActiveLibrary

xire28/redbean-traversing
=========================

Add traversing through associations with scopes for redbeans

v1.3.0(10y ago)112MITPHPPHP &gt;=5.4.0

Since Feb 13Pushed 10y ago1 watchersCompare

[ Source](https://github.com/xire28/redbean-traversing)[ Packagist](https://packagist.org/packages/xire28/redbean-traversing)[ Docs](https://github.com/xire28/redbean-traversing)[ RSS](/packages/xire28-redbean-traversing/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (11)Used By (0)

Redbean traversing
==================

[](#redbean-traversing)

Add traversing through associations with scopes for redbeans

Requirements
------------

[](#requirements)

- PHP &gt;= 5.4.0

Install
-------

[](#install)

### Using Composer

[](#using-composer)

```
composer require xire28/redbean-traversing

```

Note
----

[](#note)

This package is composed of two parts:

- `MulticallProxy` to use a collection like an object and apply the operation on all the items simultaneously
- `SQLConditionBuilder` to progressively construct the SQL query filter

Examples
--------

[](#examples)

### Seeds

[](#seeds)

- United States of America
    - Alabama
        - Lionel Richie (1949-06-20)
        - Felicia Day (1979-06-28)
    - Alaska
        - Anna Graceman (1999-08-01)
    - Arizona
        - Emma Stone (1988-11-06)
    - Arkansas
- China
    - Gensu
        - Wong Lee (1978-02-01)

### Retrieve all persons in the usa

[](#retrieve-all-persons-in-the-usa)

```

```

#### SQL statements generated

[](#sql-statements-generated)

```
SELECT `country`.* FROM `country` WHERE (`id` IN ( 1 ))
SELECT `state`.* FROM `state` WHERE country_id = '1'
SELECT `person`.* FROM `person` WHERE state_id = '1'
SELECT `person`.* FROM `person` WHERE state_id = '2'
SELECT `person`.* FROM `person` WHERE state_id = '3'
SELECT `person`.* FROM `person` WHERE state_id = '4'

```

#### Output

[](#output)

```
- Lionel Richie
- Felicia Day
- Anna Graceman
- Emma Stone

```

### Retrieve all adult persons in the usa

[](#retrieve-all-adult-persons-in-the-usa)

```

```

#### SQL statements generated

[](#sql-statements-generated-1)

```
SELECT `country`.* FROM `country` WHERE (`id` IN ( 1 ))
SELECT `state`.* FROM `state` WHERE country_id = '1'
SELECT `person`.* FROM `person` WHERE state_id = '1' AND TIMESTAMPDIFF(YEAR, born_at, CURDATE()) > 17
SELECT `person`.* FROM `person` WHERE state_id = '2' AND TIMESTAMPDIFF(YEAR, born_at, CURDATE()) > 17
SELECT `person`.* FROM `person` WHERE state_id = '3' AND TIMESTAMPDIFF(YEAR, born_at, CURDATE()) > 17
SELECT `person`.* FROM `person` WHERE state_id = '4' AND TIMESTAMPDIFF(YEAR, born_at, CURDATE()) > 17

```

#### Output

[](#output-1)

```
- Lionel Richie
- Felicia Day
- Emma Stone

```

### Build complex queries

[](#build-complex-queries)

```
