пример от документа на учението:
Конструкцията INDEX BY не е нещо, което директно се превежда в SQL, но засяга хидратацията на обекти и масиви. След всяка клауза FROM и JOIN посочвате по кое поле този клас да бъде индексиран в резултата. По подразбиране резултатът се увеличава с цифрови ключове, започващи с 0. Въпреки това с INDEX BY можете да посочите всяка друга колона да бъде ключът на вашия резултат, но наистина има смисъл само с първични или уникални полета:
SELECT u.id, u.status, upper(u.name) nameUpper FROM User u INDEX BY u.id
JOIN u.phonenumbers p INDEX BY p.phonenumber
Връща масив от следния вид, индексиран както от user-id, така и от phonenumber-id:
array
0 =>
array
1 =>
object(stdClass)[299]
public '__CLASS__' => string 'Doctrine\Tests\Models\CMS\CmsUser' (length=33)
public 'id' => int 1
..
'nameUpper' => string 'ROMANB' (length=6)
1 =>
array
2 =>
object(stdClass)[298]
public '__CLASS__' => string 'Doctrine\Tests\Models\CMS\CmsUser' (length=33)
public 'id' => int 2
...
'nameUpper' => string 'JWAGE' (length=5)