Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Zakręceniłem się między arrayami, a objektami
Forum PHP.pl > Forum > PHP > Frameworki
mate
Witam,
znając życie to znów pytam o coś głupiego, ale nie umiem sobie poradzić z pewną rzeczą.
Chodzi o to, że pobieram jakiś tam objekt z danymi po użyciu $db->fetchAll(); Powiedzmy, że w bazie mam 3 kolumny, a chciałbym, żeby w wynikach przy wyświetlaniu dodał się jeszcze jeden element. No i pytanie jest takie czy da się jakoś wejść w objekt i w pętli go rozszerzać o coś tam?
Bo ja na razie kombinowałem w taki sposób, że wynik konwetrtuję do arraya, czyli $db->fetchAll()->toArray(); a następnie w pętli dodaję do tej tablicy odpowiednie wartości. Problem jednak pojawia się wtedy jakbym chciał ponownie wrócić do tego objektu, który jest domyślnie zczytywany po użyciu funkcji fetchAll. Po za tym jeszcze pozostaje kwestia czy jest to w ogóle optymalne rozwiązaie.
vokiel
Pierwsza opcja to pobranie od razu z bazy odpowiednich danych.

Jeśli nie, to bez problemu możesz do obiektu dodawać nowe pola.
  1. $obj = new StdClass;
  2. foreach( array('a' => 1, 'b'=> 2, 'c' => 3) as $name => $value){
  3. $obj->{$name} = $value;
  4. }
  5. var_dump($obj);
mate
Chodzi o to, że dostaję coś tam i np. przy użyciu pętli foreach mogę sobie z nich korzystać:
  1. foreach($db->fetchAll() as $e) {
  2. echo $e->id . ' ' . $e->name;
  3. // Ale chcialbym żeby do tego coś dodać np:
  4. $e->dodatek = $e->id * 5; // To tylko przykład jakiś tam i chodzi o to, że tego pola dodatek nie ma w bazie.
  5. }
quality
Mozesz tak korzystac i zmieniac. W php 5.3 objekty sa automatycznie przekazywane przez referencje.
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.