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
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;
}
....
}
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