アプリケーションでは、Mapper
を実装して、ResultSet
からデータベースとオブジェクトからデータを取得しました。私はすべてのデータを取得するためにはJOIN
複数のテーブル。それから私は、例えば、オブジェクト(Main
、Foo
、Bar
など)を構築し、配列を反復処理し、それらを組み合わせZend Framework 2でJOINを使用してページネーションを使用する方法は?
[
0 => [
main_id => 1,
main_title => 'lorem',
main_desc => 'ipsum',
foo_id => '12',
foo_name => 'qwer',
bar_id => '56',
bar_name => 'asdf'
],
1 => [
main_id => 1,
main_title => 'lorem',
main_desc => 'ipsum',
foo_id => '12',
foo_name => 'qwer',
bar_id => '67',
bar_name => 'hjkl'
],
2 => [
main_id => 1,
main_title => 'lorem',
main_desc => 'ipsum',
foo_id => '23',
foo_name => 'uiop',
bar_id => '67',
bar_name => 'hjkl'
],
...
10 => [
main_id => 1,
main_title => 'lorem',
main_desc => 'ipsum',
foo_id => '23',
foo_name => 'uiop',
bar_id => '91',
bar_name => 'cvbn'
],
11 => [
main_id => 2,
main_title => 'dolor',
main_desc => 'sit',
foo_id => '78',
foo_name => 'fghj',
bar_id => '89',
bar_name => 'vbnm'
],
...
12 => [
main_id => 3,
foo_id => '135',
bar_id => '246',
...
],
13 => [
main_id => 3,
foo_id => '135',
bar_id => '468',
...
],
14 => [
main_id => 3,
foo_id => '357',
bar_id => '680',
...
],
...
1000 => [
...
]
]
:それから私は、このような構造の巨大な配列を取得します
$newMain = $myMainHydrator->hydrate($results[0]);
$newFoo = $myFooHydrator->hydrate($results[0]);
$newBar = $myBarHydrator->hydrate($results[0]);
$newFoo->setBar($newBar);
$newMain->setFoo($newFoo);
$resultObjects[] = $newMain;
は、今私はPaginator
に建設され、次の問題を得た:Paginator
はLIMIT
、例えば設定します10
を検索し、10
の行だけを取得しますが、すべてのオブジェクトに複数の結果行が必要です(現在も12
行)。
私は信じられない、Paginator
はJOIN
を処理できないので、動作させる方法が必要です。複合体SELECT
のPaginator
の使用方法はJOIN
となりますか?