Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony]EmbedForm
Forum PHP.pl > Forum > PHP > Frameworki
lukasz10
Witam
Mam problem przy wykorzystaniu funkcji embedform podczas lączeniadwoch tabel zawierających pomiedzy soba relacje. Chcialbym zaznaczyc ze wszystko dziala poprawnie tzn tabele sa polaczene , dane dodaja sie do bazy tylko jest jeden mankament otoż majac np tabele ksiązki i tabele autorzy. Tabela ksiązki jest polaczona relacja z tabela autorzy, przy wypelnianu tabeli ksiazki mam polaczona tabele autorzy. Problem tkwi w tym ze chcialbym uzyskac to ze jezeli autor juz o takim nazwisko zostal wprowadzony do tabeli autorzy to zeby nie byl wpisywany poraz kolejny tylko zostalo pobierane jego id i przypisywane do danej ksiazki, o to moj kod:

  1. unset($this['autor'],);
  2.  
  3. $author = $this->getObject()->getAutorzyRelatedByAutor();
  4.  
  5. $criteria = new Criteria();
  6. $criteria->add(XXXPeer::NAZWISKO, ' tutaj nei wiem jak pobrac nazwisko autora ' , Criteria::ILIKE);
  7. $dosel = XXXPeer::doSelect($criteria);
  8.  
  9. if(is_null($author)&&$dosel==0)
  10. {
  11. $author = new Autorzy();
  12. $this->getObject()->setAutorzyRelatedByAutorId($author);
  13.  
  14. }
  15. else
  16. {
  17. foreach($dosel as $sel)
  18. {
  19. $this->getObject()->setAutorId($sel->getId());
  20. }
  21. }
  22. $this->embedForm('autor',new AutorzyForm($author));



prosze o jakies podpowiedzi

nikt nie mial takie problemu?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif/
destroyerr
Zależy w jakim miejscu wstawiłeś swój kawałek kodu. Zobacz metodę sfForm::getValue.

Zamiast doSelect możesz zrobić doSelectOne wtedy nie musisz dawać pętli, bo od razu zwraca obiekt.
lukasz10
Ten kod jest w klasie formularza tabeli ksiązki, więc przez sfform:getvalue raczej nie dostane sie do nazwiska autora, a co do selecta to masz racje
destroyerr
Skoro jest w formularzu ten kod (zakładam, że w odpowiedniej metodzie - bo jej dalej nie znamy) to dlaczego ma się nie dać? Jaki z tym problem?
lukasz10
tak jest w metodzie configure, a czemu sie nie da?? poniewaz chce siie dostac do pola ktorego nie mam w tym formie, jest tylko id tamtej tabeli, a z tego co sie orientuje to mortoda getvalue wymaga podania nazwy pola, ja to tak rozumie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.