Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] sfValidatorChoice i konwertowanie na String
Forum PHP.pl > Forum > PHP > Frameworki
filip11
Witam,

otóż tworzę pole formularza i dodaje do niego walidator:

  1. $widget->setLabel('Odbiorcy');
  2. $this->setWidget('receivers', $widget);
  3.  
  4. $validator = new sfValidatorChoice(array('choices'=>array_keys($choices),'multiple' => true), array());
  5. $this->setValidator('receivers', $validator);
  6.  


$choices to tablica asocjacyjna. Ładnie mi się wyświetla to pole, ale kiedy próbuję przesłać formularz dostaję:

  1. Catchable fatal error: Object of class sfValidatorChoice could not be converted to string in [ciach!] on line 34


Szukałem, ale nigdzie nie znalazłem podobnego do tego błędu, czy ktoś ma jakiś pomysł? Z góry dziękuję
jaro87
Rozumiem, że [ciach!] to plik formularza który zacytowałeś wyżej a linia 34 to jedna z tych 4 linii kodu?
filip11
Tak zgadza się, przepraszam, jeśli nie jasno napisałem...
Gribo
jak mamy ci pomóc skoro nie wiemy jak wygląda zmienna $choices ? Poza tym prawdopodobnie to jest wina tego że $choices jest indeksowane jakimś stringiem a nie integerem
filip11
Cytat(Gribo @ 19.04.2011, 00:12:32 ) *
jak mamy ci pomóc skoro nie wiemy jak wygląda zmienna $choices ? Poza tym prawdopodobnie to jest wina tego że $choices jest indeksowane jakimś stringiem a nie integerem


Zgadza się, jest indeksowana Stringiem, to znaczy, że nie da rady tak zrobić tak? Widzisz i pomogłeś (tak mi się zdawało) bez znajomości tej zmiennej wink.gif zmienną $choice konstruuję tą funkcją:
  1. public function prepareMailingList()
  2. {
  3. $usersProfiles = Doctrine_Core::getTable('UsersProfiles')->createQuery()->execute();
  4. $mailingList = array();
  5. foreach($usersProfiles as $user)
  6. {
  7. $mailingList[$user->getUsers()->getEmail()] = $user->getUsers()->getLogin().': '.$user->getName().' '.$user->getLastName();
  8. }
  9. return $mailingList;
  10. }


Aczkolwiek oczywiście teraz będę musiał to zmienić jeśli nie da rady indeksować stringami smile.gif teraz funkcja, która wkłada indeksy do tablicy zwraca inty, ale i tak jest ten sam problem...
jaro87
A niby dlaczego nie może być indeksowany stringiem? Co, że niby string gorszy? ;p

To raczej nie chodzi o to. Pokaż więcej kodu: Akcje w której robisz coś z tym formularzem na przykład. Która to ta 34 linia dokładnie? Nie próbujesz w tym formularzu przypadkiem zrobić echo $validator? ;p
filip11
O w morde... Ale wstyd, tak robiłem coś w stylu echo $validator... A dokładniej:
  1. echo $this->mailForm->getValidator('receivers');



dzięki wielkie! Pozdrawiam! smile.gif
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.