2009-07-29 15 views
3

Sie müssen versprechen, nicht zu kichern, aber meine Situation ist folgende:Starten einer benutzerdefinierten Ansicht von einem benutzerdefinierten Modell. Zend_möglich?

Statt Teiltafeln und Helfer und andere ähnliche Werkzeuge, die wir bereits verwenden, wollen wir eine benutzerdefinierte Ansicht außerhalb aller Rahmen und Grenzen der tatsächlichen verwenden Anwendung. Im Grunde müssen wir an dieser Stelle nach einer bestimmten Reaktion eines Modells sauberes HTML in eine Variable laden. Das ist Affen Geschäft und kann von praktisch jedem ohne eine Tastatur durchgeführt werden.

Das Problem ist, dass die HTML-Seiten, die wir erstellen möchten, ziemlich umfangreich sind und ein Zugwrack zu debuggen/zu warten/zu erweitern sind aufgrund der Inate "return $ arrglgllgl;" Ansatz. Um ein glattes und menschliches Skript zu machen, würden wir sehr gerne den .phtml-Stil mit cleanem HTML zusammen mit php-Injektionen verwenden, ohne tatsächlich rendering es.

Ist das möglich und wie?

ich zur Zeit kämpfen mit

$mailView = new Zend_View(); 
$mailView->setScriptPath('/Templates'); 
echo($mailView->render('test.php')); 
die; 

Wo test.php ist eine Datei, die ich versucht haben, mit irgendwelchen Mitteln und Corelations vorstellen kann, zu erreichen, aber letztlich nicht jedes Mal wegen

exception 'Zend_View_Exception' with message 'script 'test.php' not found in path (\library\Extras\Controller\Action\Helpers\)' in \library\Zend\View\Abstract.php:875 
Stack trace: blablabla 

Das Laden einer benutzerdefinierten Ansicht von einem Controller ist denkbar einfach. Geben Sie nur den relativen Pfad an, und Sie sind festgelegt, aber es scheint, dass ich nichts finde, wenn ich aus einer Bibliothek herausschiebe. Irgendein Rat?

+0

Ist '/ Templates' Ihr tatsächlicher, absoluter Pfad zu speichern? Versuchen Sie, den Inhalt von $ view-> getScriptPaths() 'vor dem Rendern auszugeben, und fügen Sie diese Ausgabe zu Ihrer Frage hinzu. – jason

+0

Array ( [0] => \ Templates \ ) Grundsätzlich ist es genau das, was ich eingestellt habe, plus einen Schrägstrich. Und ich habe keine Probleme, die Ansicht vom Controller mit '../applications/views/scripts/controller/test.php' aufzurufen. – John

Antwort

2

Falls jemand fragt, dann ist dies viel einfacher als je zuvor dachte ich, es zu sein ...

// Set the view 
$layout = new Zend_Layout(); 
$view = $layout->getView(); 

// Send inherited custom parameters 
$view->params = $params; 

Sie also die $ Ansicht als eine reale Ansicht verwenden kann, und lädt jeden $ view-> Helfer wie du magst.

Um gerenderte Ansicht, Typen ...

$savingParameter = $view->render('controller/subfolder/' . $page . '.phtml'); 

tadaa

Verwandte Themen