von elster |
hi raiserle, Danke!
Ja so ähnlich. Habs mittlerweile gelöst. Es ist schon eine Weile her, aber in etwa so:
$fields = $this->item->profile->getFieldset('profile');
und
foreach ($fields as $profile) {
und
$profile->city } ...
Grüße |
von raiserle |
Naja, solange es protected ist, kann man es wie in einem Post weiter oben machen.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: | <?php
class ContactViewContact { # ich gehe mal davon aus, dass du selbst diese Klasse erstellt hast.
# ansonsten , geh halt in den Quellcode und füge die Methode ein.... aber mein Vorredner
# hatte es ja schon gesegt. Es sollte eine Methode geben, um auf city zugreifen zu können.
# ......
public function getCity()
{
return $this->state->profile->data->data->profile->city;
}
#......
}
?>
|
Warum und wieso man solche Strukturen schafft... ist mir zu entfernt... ;)
Aber probiers mal so - sollte gehen.
|
von Ori |
Ich blicke immer noch nicht ganz durch deine Objekte durch. Das ist die Ausgabe von print_r($this) und du bist in ContactViewContact (ein seltsamer Name für eine Klasse)?
Und ich muss nochmal darauf hinweisen, dass solch ein Zugriff mit Sicherheit nicht vom Erfinder der Klassen, die du benutzt, gewollt ist. Eigentlich solltest du auf anderem Weg Zugriff auf diese Eigenschaft haben. Da muss es doch irgendwo eine Doku geben… |
von elster |
Hi Ori,1: | Zwei::getData(Eins::getData($this->item->profile))->city; |
gibt nichts aus, bleibt leer, obwohl was im array enthalten ist. Die Struktur sieht so aus (aus print_r):
ContactViewContact Object (
[state:protected] => JObject Object (
...
[profile] => JForm Object (
[data:protected] => JRegistry Object (
[data:protected] => stdClass Object (
[profile] => stdClass Object (
[city] => "downtown"
...
vielleicht ist da irgendwo in dem Framework noch was "gedeckelt" oder meine Variablennamen stimmen nicht?
Grüße, elster |
von Ori |
Genau, $this zeigt immer auf die aktuelle Instanz der Klasse, in der du gerade bist.
Der Wert von city ist tatsächlich ein leerer String. (Das steht in deiner print_r()-Ausgabe im ersten Beitrag.)
Wie die Variable mit deiner Instanz von JForm heißt, kann ich nicht raten. Ich habe sie $jformding getauft; den Variablennamen musst du durch den echten ersetzen. |
|