Versions:

This document contains information about a future release and not the current stable version (4). Be aware that information on this page may change and API's may not be stable for production use.

Managing Lists

Whenever using the ORM to fetch records or navigate relationships you will receive an SS_List instance commonly as either DataList or RelationList. This object gives you the ability to iterate over each of the results or modify.

Iterating over the list.

SS_List implements IteratorAggregate, allowing you to loop over the instance.

$members = Member::get();

foreach($members as $member) {
    echo $member->Name;
}

Or in the template engine:

<% loop $Members %>
    <!-- -->
<% end_loop %>

Finding an item by value.

// $list->find($key, $value);

//
$members = Member::get();

echo $members->find('ID', 4)->FirstName;
// returns 'Sam'

Maps

A map is an array where the array indexes contain data as well as the values. You can build a map from any list

$members = Member::get()->map('ID', 'FirstName');

// $members = array(
//  1 => 'Sam'
//  2 => 'Sig'
//  3 => 'Will'
// );

This functionality is provided by the Map class, which can be used to build a map around any SS_List.

$members = Member::get();
$map = new Map($members, 'ID', 'FirstName');

Column

$members = Member::get();

echo $members->column('Email');

// returns array(
//  '[email protected]',
//  '[email protected]',
//  '[email protected]'
// );

ArrayList

ArrayList exists to wrap a standard PHP array in the same API as a database backed list.

$sam = Member::get()->byId(5);
$sig = Member::get()->byId(6);

$list = new ArrayList();
$list->push($sam);
$list->push($sig);

echo $list->Count();
// returns '2'

API Documentation

Was this article helpful?