Ich bin auf der Suche nach einer Möglichkeit, Ansichtsvorlage (NOT-Layout) zu ändern, aber ich habe keinen Zugang zu diesem Modul (es Teil des Verkäufers), so kann ich nicht tun:Zend 2: Wie kann ich die Vorlage für eine bestimmte Aktion ändern?
$view = new ViewModel();
$view->setTemplate($template);
Es wäre schön, wenn ich es schaffen könnte, indem ich an irgendein Ereignis anschließe.
habe ich folgenden Code versuchen:
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$eventManager->getSharedManager()->attach('Zend\Mvc\Controller\AbstractActionController', 'dispatch', function($e) {
$controller = $e->getTarget();
$routeMatch = $e->getRouteMatch();
$routeName = $routeMatch->getMatchedRouteName();
if ($routeName === 'login') {
$controller->layout('layout/layout');
$e->getViewModel()->setTemplate('views/login');
}
}, 1);
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
Aber es scheint, als ob es nicht so funktioniert. Ich meine, es hat mein Layout geändert, es hat meine Ansichtsvorlage geändert, aber wenn ich zum Beispiel versuche: $this->form
bekomme ich null
. Es sieht so aus, als ob alle Variablen von dieser Aktion gelöscht werden.
Wie funktioniert es?
Wie setzen Sie Ihre Variablen in Ihrem Controller auf die Ansicht? – Hooli