Próbowałem znaleźć sposób przechwytywania danych wyjściowych (renderowanego widoku) innej akcji w ramach bieżącej akcji ... czegoś podobnego do buforowania wyjściowego.Przechwytuje wyjście innej akcji w ramach bieżącej akcji?
Scenariusz jest taki, że muszę zapisać "migawkę" raportu. Dane używane w raporcie ciągle się zmieniają iz jakiegokolwiek powodu muszę faktycznie zapisać HTML widoku, a nie tylko tablicę danych. Stworzyłem snapshotAction() i chcę jakoś uchwycić wynik oddzielnej funkcji reportAction() w jej obrębie. Nie chcę renderować funkcji reportAction() na ekranie, chcę ją wyrenderować w ramach bieżącej akcji przed zakończeniem działania.
Czy można to zrobić w ZF?
poprawnie odbierane przez Benedykta Cohen poniżej, ale nie zdaje sobie sprawy, dopóki nie zobaczyłem tego Zastosowanie w ZF lista dyskusyjna Archives: How to render multiple action views?
Używam coś podobnego:
public function snapshotAction() {
$content = $this->view->action('run', 'report');
...etc...
}
Nowa pętla ekspedycyjna jest dokładnie tym, czego potrzebuję, ale chciałbym jakoś to zrobić w akcji kontrolera, z dwóch powodów: nie chcę renderować widoku migawki (planuję zrobić to AJAX zadzwoń, przepraszam, zapomniałem o tym wspomnieć), a także musiałbym przetworzyć/zapisać widok raportu z widoku migawki, który niszczy konwencję MVC. To zadziałało, po prostu zszokowane, że nie możesz tego zrobić od kontrolera. – wizzard
Odzyskuję. Nie sądziłem, że możesz to nazwać z kontrolera z jakiegoś powodu, ale działa idealnie. Zmodyfikuje moje pytanie za pomocą bardziej szczegółowego kodu. – wizzard