ZF2 "Unable to render template" Zend sucht im falschen Verzeichnis
Ich habe eine seltsame situation...
Nach der Erstellung des ZF2 SkeletonApplication erstellte ich ein extra Modul namens Authentifizierung mit einem AuthController und ein LoginAction auch in das Verzeichnis "authentication/auth" legte ich ein login.phtml.
Wenn ich die app starte, bekomme ich eine Fehlermeldung
Zend\View\Renderer\PhpRenderer::render: Unable to render template "authentication/auth/login"; resolver could not resolve to a file
Das merkwürdige ist, dass, wenn ich den kompletten Ordner "authentication/auth/login.phtml" in der Standard-Anwendung Modul-Ansicht-Ordner findet er es.
Also Zend sucht im falschen Verzeichnis.
Dies ist mein module.config.php (Authentication Module).
return array(
'router' => array(
'routes' => array(
'authentication' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/authentication/login',
'defaults' => array(
'controller' => 'Authentication\Controller\Auth',
'action' => 'login',
),
),
),
),
),
'controllers' => array(
'invokables' => array(
'Authentication\Controller\Auth' => 'Authentication\Controller\AuthController',
),
),
'viewmanager' => array(
'template_path_stack' => array(
'authentication' => __DIR__ . '/../view',
),
)
);
Dies ist die AuthController
namespace Authentication\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class AuthController extends AbstractActionController
{
public function loginAction()
{
return new ViewModel();
}
}
Ich hoffe jemand kann mich in die richtige Richtung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den vollständigen Pfad kann nicht aufgelöst werden, von zf2. Die ansichtenmanagers ist mit Ihrer Vorlage pathStack zu finden, die relative Ansicht. In deinem Beispiel, die ansichtenmanagers ist auf der Suche nach dieser Datei :
DIR . '/../view/authentication/auth/login.phtml
In anderer Weise, können Sie hinzufügen, um Ihre ansichtenmanagers eine templateMap wie diese :
ändern Sie Ihre config:
Ich nehme an, Sie sind eine Ebene zu weit hinten..
Wenn Sie die config ist hier:
dann wollen Sie nur eine einzelne Ebene, dann an den view-Verzeichnis. Dein code würde man wieder eine Ebene höher, in das modules-Verzeichnis.