Unable to render template ...

23 views
Skip to first unread message

joche...@jobvector.com

unread,
Apr 20, 2016, 9:07:10 AM4/20/16
to YAWIK


Hallo Carsten,

ich habe bei mir ein eigenes Modul 'CapsidSkin' auf Basis des 'YawikDemoSkin' erstellt, das soweit funktioniert.

Nur können einzelne views nicht mehr gerendert werden, z.B. bei Klick auf den Button mit dem Stift in der Liste der ausstehenden Stellenanzeigen:

-----------------------------------------------------%<-----------------------------------------------------
Ein Fehler ist aufgetreten
An error occurred during execution; please try again later.
Zusätzliche Informationen:
Zend\View\Exception\RuntimeException

Datei:

/usr/local/YAWIK/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php:493

Nachricht:

Zend\View\Renderer\PhpRenderer::render: Unable to render template "capsid-skin/manage/approval"; resolver could not resolve to a file

Stapelverlauf:

#0 /usr/local/YAWIK/vendor/zendframework/zend-view/src/View.php(205): Zend\View\Renderer\PhpRenderer->render(Object(Zend\View\Model\ViewModel))
#1 /usr/local/YAWIK/vendor/zendframework/zend-view/src/View.php(233): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#2 /usr/local/YAWIK/vendor/zendframework/zend-view/src/View.php(198): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#3 /usr/local/YAWIK/vendor/zendframework/zend-mvc/src/View/Http/DefaultRenderingStrategy.php(103): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#4 [internal function]: Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#5 /usr/local/YAWIK/vendor/zendframework/zend-eventmanager/src/EventManager.php(490): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#6 /usr/local/YAWIK/vendor/zendframework/zend-eventmanager/src/EventManager.php(214): Zend\EventManager\EventManager->triggerListeners('render', Object(Zend\Mvc\MvcEvent), Array)
#7 /usr/local/YAWIK/vendor/zendframework/zend-mvc/src/Application.php(353): Zend\EventManager\EventManager->trigger('render', Object(Zend\Mvc\MvcEvent))
#8 /usr/local/YAWIK/vendor/zendframework/zend-mvc/src/Application.php(328): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#9 /usr/local/YAWIK/public/index.php(49): Zend\Mvc\Application->run()
#10 {main}


-----------------------------------------------------%<-----------------------------------------------------

Insbesondere verwirrt mich der Name des Pfads, in dem das Template gesucht wird: 'capsid-skin/manage/approval', obwohl das Modul 'CapsiudSkin' heisst...
Das Problem scheint auf alle views unterhalb des Pfades .../manage/ zuzutreffen.

Ich habe auch ein eigenes Template für Stellenanzeigen erstellt, dazu gabe ich die view /module/CapsidSkin/view/templates/<template name>/index.phtml angelegt.
Diese wird auch gefunden, wenn ich in der module.config meines Modules in dem array unterhalb des keys 'view_manager' den Eintrag

'template_path_stack' => array(
__DIR__ . '/../view',
),

hinzufüge. Der o.a. Fehler tritt aber immer auf, auch ohne dies Erweiterung in der module_config.php...

Muss ich die Pafde für die views noch irgendwo anders anpassen?

VG,
Jochen

Carsten Bleek

unread,
Apr 20, 2016, 10:06:18 AM4/20/16
to ya...@googlegroups.com
Hallo Jochen,

der Name für das Template "capsid-skin/manage/approval" kommt aus dem
ZF2 Framework. Wenn es zum Rendern kommt und noch kein Template
definiert ist, dann wird ein Template Name bestehend aus dem Modulnamen,
dem Controller und der Action generiert. Dabei wird CamelCase
Schreibeweise in die dashed Form übersetzt.

https://github.com/zendframework/zend-mvc/blob/master/src/View/Http/InjectTemplateListener.php#L83

Aufgrund des Fehlers hast Du vermutlich den
Jobs/Controller/ManageController überschrieben.


Jetzt kann man entweder im Controller einen Template Namen setzen (Im
Approval Controller wird das zB gemacht.
https://github.com/cross-solution/YAWIK/blob/develop/module/Jobs/src/Jobs/Controller/ApprovalController.php#L119)
oder in seinen 'template_map' für den generierten Wert einen Eintrag machen.

'template_map' => [
'capsid-skin/manage/approval' => '.. Pfad zur phtml Datei'
]

Beispiel:
https://github.com/cbleek/YawikDemoSkin/blob/master/config/module.config.php#L10


Viele Grüße,

Carsten
> --
> Demo: http://yawik.org/demo
> ---
> Sie erhalten diese Nachricht, weil Sie in Google Groups E-Mails von der
> Gruppe "YAWIK" abonniert haben.
> Wenn Sie sich von dieser Gruppe abmelden und keine E-Mails mehr von
> dieser Gruppe erhalten möchten, senden Sie eine E-Mail an
> yawik+un...@googlegroups.com
> <mailto:yawik+un...@googlegroups.com>.
> Wenn Sie in dieser Gruppe einen Beitrag posten möchten, senden Sie eine
> E-Mail an ya...@googlegroups.com <mailto:ya...@googlegroups.com>.
> Wenn Sie diese Diskussion im Web verfolgen möchten, rufen Sie
> https://groups.google.com/d/msgid/yawik/e47c4ca3-441b-41e8-93c0-71f4a01ada99%40googlegroups.com
> <https://groups.google.com/d/msgid/yawik/e47c4ca3-441b-41e8-93c0-71f4a01ada99%40googlegroups.com?utm_medium=email&utm_source=footer>
> auf.
> Weitere Optionen finden Sie unter https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages