mackattack
Mitglied
Moin Moin,
ich habe ein Problem. Ich versuche mich gerade daran, Objekte in Smarty-Templates anzusprechen. Grundsätzlich ist dies durch die Methode assign_by_ref() durchaus möglich und funktioniert auch super, aber was ist, wenn ich Rückgaben von verschachtelten Objekten brauche? Leider konnte mir die Suche kein passendes Ergebnis liefern, auch Google nicht - alsob ich der Erste wäre, der auf sowas stößt
Beispiel:
Datenverarbeitende PHP-Datei:
Template für die Ausgabe:
Fehlermeldung:
Fatal error: Smarty error: [in ...]: syntax error: unrecognized tag: $objTestClass1->getClass2()->getVar() (Smarty_Compiler.class.php, line 436) in .../Smarty/Smarty.class.php on line 1095
Find ich irgendwie komisch... wäre schon schön, wenn man auf den Unterobjekten korrekt arbeiten könnte, würde einiges wesentlich einfacher machen
Wenn jemand eine Lösung/Workaround/Ansatz hat, bitte her damit, mein Dank sei demjenigen mehr als sicher
Peace,
MackAttack
ich habe ein Problem. Ich versuche mich gerade daran, Objekte in Smarty-Templates anzusprechen. Grundsätzlich ist dies durch die Methode assign_by_ref() durchaus möglich und funktioniert auch super, aber was ist, wenn ich Rückgaben von verschachtelten Objekten brauche? Leider konnte mir die Suche kein passendes Ergebnis liefern, auch Google nicht - alsob ich der Erste wäre, der auf sowas stößt
Beispiel:
Datenverarbeitende PHP-Datei:
PHP:
class TestClass1
{
public $var1 = 123;
public $var2 = 321;
/**
* Rückgabe irgend eines Objektes
*
* @return TestClass2
*/
public function getClass2()
{
return new TestClass2();
}
}
class TestClass2
{
private $_var1 = 'asd';
/**
* Rückgabe einer Objekt-Eigenschaft
*
* @return String
*/
public function getVar()
{
return $this -> _var1;
}
}
$objSmarty = new Smarty();
$objSmarty -> assign_by_ref('objTestClass1', new TestClass1());
$objSmarty -> display( 'test.tpl' );
Template für die Ausgabe:
HTML:
{$objTestClass1->var1} {* Gibt den richtigen Wert 123 zurück *}
{$objTestClass1->var2} {* Gibt den richtigen Wert 321 zurück *}
{$objTestClass1->getClass2()} {* Gibt das korrekte Objekt zurück *}
{$objTestClass1->getClass2()->getVar()} {* Wirft den unten angegebenen Fehler *}
Fehlermeldung:
Fatal error: Smarty error: [in ...]: syntax error: unrecognized tag: $objTestClass1->getClass2()->getVar() (Smarty_Compiler.class.php, line 436) in .../Smarty/Smarty.class.php on line 1095
Find ich irgendwie komisch... wäre schon schön, wenn man auf den Unterobjekten korrekt arbeiten könnte, würde einiges wesentlich einfacher machen
Wenn jemand eine Lösung/Workaround/Ansatz hat, bitte her damit, mein Dank sei demjenigen mehr als sicher
Peace,
MackAttack