Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 5.05.2010 Ostrzeżenie: (0%)
|
Witajcie,
Mam problem z formularzem, w którym użytkownik może wybrać obiekt z tabeli lub dodać nowy obiekt do tej samej tabeli. Na przykladzie: użytkownik tworzy nowe Interview (w formie głównej), gdzie Interview jest przeprowadzane z Celebrity. Celebrity może być wybrana z listy lub stworzona nowa (w formie wbudowanej). W którym miejscu powinno nastąpić powiaząnie miedzy wybranym/stworzonym obiektem z wbudowanej formy a obiektem z formy głównej, innymi słowy w którym miejscu powinnam nadac wartość polu celebrity_id? Moj schemat: Kod Interview: columns: title celebrity_id relations: Celebrity: local: celebrity_id foreign: id Celebrity: columns: name file_name Częściowe rozwiązanie znalazłam na tej stronie: http://www.miximum.fr/tutos/466-symfony-form-pick-or-create Próbuje rozwiazać ten sam przypadek z jednym dodatkowym polem, file_name dla Celebrity (chcę żeby Celebrity miała też zdjęcie). Autor radzi zrobić to przypisanie w funkcji: Kod public function doUpdateObject($values) { if(!empty($values['Celebrity']['celebrity_id'])) { $this->getObject()->setCelebrityId($values['Celebrity']['celebrity_id']); } else { $celebrity = new Celebrity(); $celebrity->fromArray($values['Celebrity']['new_celebrity']); $this->getObject()->Celebrity = $celebrity; } .... } Rozwiązanie podane w tym tutorialu dziala mi dla tamtego schematu. Problem pojawia się, gdy dodaję nową Celebrity ze zdjęciem. Wówczas pole file_name pozostaje puste. Czemu Kod $celebrity->fromArray($values['Celebrity']['new_celebrity']); nie przekazuje nazwy pliku a pozostałe pola tak? Będę wdzięczna za wszelkie porady i wskazówki. Pozdrawiam, Goska |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%)
|
Nie zastanawiałem się nad całym problemem, tylko nad brakiem wartości tego pola. Po pierwsze nie wiemy co jest w zmiennej $values, jeśli jest w niej wynik metody sfForm::getValues() to znaczy, że zamiast oczekiwanej przez Ciebie nazwy pliku jest obiekt klasy sfValidatedFile. Szukaj przyczyny w tych okolicach.
Podejrzewam, że pobierasz dane z formularza w akcji i tam zapisujesz obiekt, nie zapisując wcześniej pliku, ale to jest wróżbiarstwo. |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 02:50 |