Zend\Mvc\Controller\Plugin\Forward
컨트롤러 플러그인을 사용하여 다른 컨트롤러 조치를 다른 컨트롤러 조치에서 파견 할 수 있습니다.
워드 프로세서를 사용하면 일치하는 컨트롤러 내에서 추가 컨트롤러를 파견 할 수 있습니다, 때때로
말을 - 예를 들어, 당신은 "에서는 widgetized"컨텐츠를 구축하기 위해이 방법을 사용할 수 있습니다. Forward 플러그인을 사용하면이 기능을 사용할 수 있습니다.
이러한 작업이 이미 있지만 다른보기와 결합하여 통합보기를 작성하려는 경우 유용합니다. $serverStatsWidget
으로
use Zend\View\Model\ViewModel;
class AdminController extends AbstractActionController
{
public function adminDashboardAction()
{
$view = new ViewModel();
$view->setTemplate('admin/admin/dashboard');
//..
$serverStatsWidget = $this->forward()->dispatch('ServiceModule\Controller\Server', array(
'action' => 'status',
'foo' => 'bar',
));
if ($serverStatsWidget instanceof ViewModel) {
$view->addChild($serverStatsWidget, 'serviceStats');
}
return $view;
}
는 파견 컨트롤러의 결과, 당신은 그럼 그냥 echo
를 사용하여 결과를 자식으로 '주'보기에 추가하고 렌더링 할 수 있습니다.
// admin/admin/dashboard.phtml
echo $this->serviceStats;
내가 틀렸다면 정정 해줘; 컨트롤러 액션을 디스패치하고 결과 뷰 모델에서 위젯을 생성해야합니까? – AlexP
나는 이것이 작동해야한다고 생각한다 :'return $ this-> getView() -> render ('application/controller/action', array ('param'=> 'value'));'' 보기 도우미. –
Gilberto Albino -> 감사합니다. MVC에 대해 다시 읽은 후 나는 render()를 분석하고 데이터베이스 등의 데이터를 파싱하는 데 서비스를 사용해야한다는 것을 알게되었습니다. – KatsuoRyuu