Ho cercato di trovare un modo per acquisire l'output (visualizzazione di rendering) di un'altra azione all'interno dell'azione corrente ... qualcosa di simile al buffer di output.Cattura l'output di un'altra azione all'interno dell'azione corrente?
Lo scenario è che ho bisogno di salvare uno "snapshot" di un report. I dati utilizzati nel report sono in continua evoluzione e, per qualsiasi motivo, ho bisogno di salvare la vista HTML piuttosto che un semplice array di dati. Ho creato uno snapshotAction() e voglio in qualche modo catturare l'output del report separatoAction() al suo interno. Non voglio rendere reportAction() sullo schermo, voglio renderlo all'interno della mia azione corrente, prima che l'azione venga completata.
C'è un modo per farlo in ZF?
risposto correttamente da Benedetto Cohen di seguito, ma non mi rendevo conto fino a quando ho visto questo utilizzo negli archivi della mailing list ZF: How to render multiple action views?
Sto usando qualcosa di simile:
public function snapshotAction() {
$content = $this->view->action('run', 'report');
...etc...
}
Un nuovo ciclo di invio è esattamente ciò di cui ho bisogno, ma mi piacerebbe avere un modo per farlo all'interno dell'azione del controller, per due motivi: non desidero effettivamente eseguire il rendering della vista di snapshot (pianificando di renderlo un AJAX chiama, scusa ho dimenticato di dirlo), e inoltre dovrei elaborare/salvare la vista del report dalla vista dello snapshot, che tipo di interruzioni della convenzione MVC. Lavorerebbe comunque, solo scioccato non puoi farlo dal controller. – wizzard
Lo riprendo. Non pensavo che potresti chiamarlo dal controller per qualche ragione, ma funziona perfettamente. Modificherà la mia domanda con codice più specifico. – wizzard