Czy normalne jest że ilość zwracanych danych przez obiekt sfOutputEscaperArrayDecorator (po wywołaniu polecenia doSelectJoinAll*()) jest nad wyraz duża?
W sumie wygląda na to że pobierając np. jeden artykuł z tabeli z artykułami (czyli jeden wiersz) z bazy przy pomocy np. doSelectJoinAutor() by np. prócz ID autora dostać też jego Nazwisko (z osobnej tabeli 'Autor') -> Propel zwraca:
1) obiekt 'Artykuł' (ok)
1a) obiekt 'Autor' powiązany z poprzednim obiektem 'Artykuł' (ok)
1b) wszystkie obiekty 'Artykuł' powiązane z pobranym punkt wcześniej obiektem 'Autor' (

Czy idzie jakoś wyeliminować bezużyteczny pkt. 1b)

Bo jeżeli chcę pobrać jeden artykuł i jego autora, to propel zwróci mi tenże artykuł oraz dane autora, a poza tym 1000 obiektów typu 'Artykuł', które należą do tegoż autora....
Poprawnie to rozumiem? Jak tego uniknąć?

================================================================
Przykład:
Kod PHP:
<?php public function executeLastNews() { $c = new Criteria(); $c->add( ArticlePeer::IS_PUBLISHED, true ); $c->add( CategoryPeer::IS_PUBLISHED, true ); $c->addDescendingOrderByColumn( ArticlePeer::CREATED_AT ); $c->setLimit( $this->items ); $this->articles = ArticlePeer::doSelectJoinCategory($c); }// end executeLastNews(); ?>
Wygenerowane zapytanie przez w/w funkcję doSelectJoinCategory():
SELECT article.ID, article.CATEGORY_ID, article.REGION_ID, article.PICTURE, article.TITLE, article.SHORT_DESC, article.DESC, article.IS_PUBLISHED, article.CREATED_AT, article.UPDATED_AT, category.ID, category.NAME, category.IS_PUBLISHED, category.CREATED_AT FROM `article` LEFT JOIN category ON (article.CATEGORY_ID=category.ID) WHERE article.IS_PUBLISHED=1 AND category.IS_PUBLISHED=1 ORDER BY article.CREATED_AT DESC LIMIT 3
Zwrócone przez bazę wyniki:
ID CATEGORY_ID REGION_ID PICTURE TITLE SHORT_DESC DESC IS_PUBLISHED CREATED_AT UPDATED_AT ID NAME IS_PUBLISHED CREATED_AT 5 7 20 testowy_drugi.jpg Czy grozi nam powtórka zimy stulecia? Najbliższy tydzień upłynie pod znakiem gwałtownego... TO jest pełny opis. Najbliższy tydzień upłynie pod... 1 2009-02-04 14:35:59 2009-02-04 14:35:59 7 Teatr 1 2009-02-04 14:35:59
( wiem że ostatnie pole może mało czytelne, ale WSZYSTKO do tej pory jest naprawdę super, tak jak powinno być! )
Tyle że........
podczas var_dump( $articles ) dostaję taki oto obiekt:
<?php object(sfOutputEscaperArrayDecorator)#65 (3) { ["count:private"]=> NULL ["value:protected"]=> [0]=> object(Article)#90 (18) { ["id:protected"]=> int(5) ["category_id:protected"]=> int(7) ["region_id:protected"]=> int(20) ["picture:protected"]=> string(17) "testowy_drugi.jpg" ["title:protected"]=> string(38) "Czy grozi nam powtórka zimy stulecia?" ["short_desc:protected"]=> string(201) "Najbliższy tydzień upłynie pod znakiem gwałtownego ochłodzenia. Temperatury spadną nawet poniżej -25 stopni. Czy grozi nam powtórka z zimy stulecia? Wtedy też nic nie zapowiadało fali zimna. " ["desc:protected"]=> string(1227) "To jest pełny opis. Najbliższy tydzień upłynie pod znakiem gwałtownego ochłodzenia. Temperatury spadną nawet poniżej -25 stopni. Czy grozi nam powtórka z zimy stulecia? Wtedy też nic nie zapowiadało fali zimna. Itd." ["is_published:protected"]=> bool(true) ["created_at:protected"]=> string(19) "2009-02-04 14:35:59" ["updated_at:protected"]=> string(19) "2009-02-04 14:35:59" ["aCategory:protected"]=> object(Category)#91 (14) { ["id:protected"]=> int(7) ["name:protected"]=> string(5) "Teatr" ["is_published:protected"]=> bool(true) ["created_at:protected"]=> string(19) "2009-02-04 14:35:59" ["collThemaCategorys:protected"]=> NULL ["lastThemaCategoryCriteria:private"]=> NULL ["collArticles:protected"]=> [0]=> object(Article)#90 (18) { ["id:protected"]=> int(5) ["category_id:protected"]=> int(7) ["region_id:protected"]=> int(20) ["picture:protected"]=> string(17) "testowy_drugi.jpg" ["title:protected"]=> string(38) "Czy grozi nam powtórka zimy stulecia?" ["short_desc:protected"]=> string(201) "Najbliższy tydzień upłynie pod znakiem gwałtownego ochłodzenia. Temperatury spadną nawet poniżej -25 stopni. Czy grozi nam powtórka z zimy stulecia? Wtedy też nic nie zapowiadało fali zimna. " ["desc:protected"]=> string(1227) "To jest pełny opis. Najbliższy tydzień upłynie pod znakiem gwałtownego ochłodzenia. Temperatury spadną nawet poniżej -25 stopni. Czy grozi nam powtórka z zimy stulecia? Wtedy też nic nie zapowiadało fali zimna. Itd." ["is_published:protected"]=> bool(true) ["created_at:protected"]=> string(19) "2009-02-04 14:35:59" ["updated_at:protected"]=> string(19) "2009-02-04 14:35:59" ["aCategory:protected"]=> object(Category)#91 (14) { ["id:protected"]=> int(7) ["name:protected"]=> string(5) "Teatr" ["is_published:protected"]=> bool(true) ["created_at:protected"]=> string(19) "2009-02-04 14:35:59" ["collThemaCategorys:protected"]=> NULL ["lastThemaCategoryCriteria:private"]=> NULL ["collArticles:protected"]=> [0]=> *RECURSION* } ["lastArticleCriteria:private"]=> NULL ["alreadyInSave:protected"]=> bool(false) ["alreadyInValidation:protected"]=> bool(false) ["validationFailures:protected"]=> } ["_new:private"]=> bool(false) ["_deleted:private"]=> bool(false) ["modifiedColumns:protected"]=> } } ["aRegion:protected"]=> NULL ["alreadyInSave:protected"]=> bool(false) ["alreadyInValidation:protected"]=> bool(false) ["validationFailures:protected"]=> } ["_new:private"]=> bool(false) ["_deleted:private"]=> bool(false) ["modifiedColumns:protected"]=> } } } ["lastArticleCriteria:private"]=> NULL ["alreadyInSave:protected"]=> bool(false) ["alreadyInValidation:protected"]=> bool(false) ["validationFailures:protected"]=> } ["_new:private"]=> bool(false) ["_deleted:private"]=> bool(false) ["modifiedColumns:protected"]=> } } ["aRegion:protected"]=> NULL ["alreadyInSave:protected"]=> bool(false) ["alreadyInValidation:protected"]=> bool(false) ["validationFailures:protected"]=> } ["_new:private"]=> bool(false) ["_deleted:private"]=> bool(false) ["modifiedColumns:protected"]=> } } } ["escapingMethod:protected"]=> string(16) "esc_specialchars" } ?>
I to tylko dla jednego rekordu... Jakbym chciał pobrać ich 100, to aż strach pomyśleć jak obciążyłoby to pamięć :/.
Obłęd.