Grzegorz
P.
CodeTwo sp. z o.o.
sp. k.
Temat: Formularze i JOIN
Witam!Na początek chciałbym przywitać serdecznie wszystkich, jako że jest to mój pierwszy post na tym forum.
Zastanawiam się czy istnieje jakiś sposób aby ograniczyć ilość zapytań do DB podczas rozwiązywania następującego problemu.
Mamy dwie tabele, 'passenger' i 'address'. Oczywiście tabele są połączone ze sobą relacją.
Stworzyłem sobie też formularze, odpowiednie pola, reguły walidacji etc.
Teraz problem - chcąc wyświetlić dane pasażera z jego adresem wykonuję polecenie (np):
$passenger = PassengerPeer::retrieveByPK(7);
potem tworzę formularze:
$this->form_psng = new PassengerForm($passenger);
$this->form_address = new AddressForm($passenger->getAddress());
I w widoku:
<?=$form_psng->render() ?>
<?=$form_address->render() ?>
I w ten sposób ilość zapytań jest wprost proporcjonalna do ilości potencjalnych relacji. Tutaj 2.
Próbowałem takiej konstrukcji:
$c = new Criteria();
$c->add(PassengerPeer::ID,7));
$c->addJoin(PassengerPeer::ADDRESS_ID, AddressPeer::ID);
$passenger= PassengerPeer::doSelectOne($c);
potem tworzenie formularzy dokradnie tak jak wyżej... i ilość zapytań do DB jest dokładnie taka sama - z tym, że pierwsze... faktycznie jest zapytaniem do dwóch tabel połączonych relacyjne.
Zna ktoś z Was sposób na rozwiązanie tego problemu?
Pozdrawiam!