Я работаю над приложением Zend Framework 2 со сложным классом (Foo
) иметь много уровней вложенности (Foo.Bar
, Foo.Baz.Buz
так далее.). Данные хранятся в реляционной базе данных (MySQL). На уровне приложения это становится hydrate
ед DataObject
с помощью Zend\Hydrator\ClassMethods
,
Чтобы получить все данные, необходимые для построения Foo
DataObject
Я использую оператор SQL (обернутый Zend\Db\Sql\Select
). Как ResultSet
Я получаю большой стол, как это:
id some_foo_attr bar_id some_bar_attr baz_id some_baz_attr buz_id some_buz_attr
-------------------------------------------------------------------------------
1 foo_value_a 1 bar_value_a 1 baz_value_a 1 buz_value_a
1 foo_value_a 1 bar_value_a 1 baz_value_a 2 buz_value_b
1 foo_value_a 1 bar_value_a 2 baz_value_b 3 buz_value_c
1 foo_value_a 1 bar_value_a 2 baz_value_b 4 buz_value_d
1 foo_value_a 2 bar_value_b 3 baz_value_c 6 buz_value_e
1 foo_value_a 2 bar_value_b 3 baz_value_c 7 buz_value_f
1 foo_value_a 2 bar_value_b 4 baz_value_d 8 buz_value_g
1 foo_value_a 2 bar_value_b 4 baz_value_d 8 buz_value_h
2 foo_value_b 3 bar_value_c 5 baz_value_e 9 buz_value_i
...
Теперь у меня проблема с получением этих данных DataObject
s. Какой эффективный способ сделать это? Или, может быть, я сделал ошибку на шаг раньше и должен получить данные по-другому?
Задача ещё не решена.
Других решений пока нет …