Versions:

This document contains information for an outdated version and may not be maintained any more. If some of your projects still use this version, consider upgrading as soon as possible.

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 SS_Map class, which can be used to build a map around any SS_List.

$members = Member::get();
$map = new SS_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?