我在/ module / Application / src / View / Helper / Messages中创建类
码:
<?php
namespace Application\View\Helper;
use Zend\View\Helper\AbstractHelper;
class Messages extends AbstractHelper {
public function __construct() {
}
protected function renderErrorMessages($item) {
echo "!!!";
}
}
添加他的module.config.php代码:
....
'controllers' => [
'factories' => [
Controller\IndexController::class => InvokableFactory::class,
Controller\UserController::class => InvokableFactory::class,
],
],
'view_helpers' => [
'factories' => [
View\Helper\Messages::class => InvokableFactory::class,
],
'aliases' => [
'messages' => View\Helper\Messages::class
]
],
'view_manager' => [
'display_not_found_reason' => true,
'display_exceptions' => true,
在页面login.phtml我插入代码:
...
<?php echo $this->Messages()->renderErrorMessages(); ?>
...
并获取日志错误:
[Wed Mar 13 12:18:30.725622 2019] [php7:error] [pid 9697] [client 127.0.0.1:52914] PHP致命错误:未捕获的Zend \ ServiceManager \ Exception \ ServiceNotFoundException:一个名为“Messages”的插件是找不到插件管理器Zend \ View \ HelperPluginManager /var/www/webuseorg4/vendor/zendframework/zend-servicemanager/src/AbstractPluginManager.php:142\nStack trace:\ n#0 / var / www / webuseorg4 / vendor /zendframework/zend-view/src/Renderer/PhpRenderer.php(376):Zend \ ServiceManager \ AbstractPluginManager-> get('Messages',NULL)\ n#1 / var / www / webuseorg4 / vendor / zendframework / zend- view / src / Renderer / PhpRenderer.php(394):Zend \ View \ Renderer \ PhpRenderer-> plugin('Messages')\ n#2 /var/www/webuseorg4/module/Application/view/layout/login.phtml (32):Zend \ View \ Renderer \ PhpRenderer - > __ call('Messages',Array)\ n#3 /var/www/webuseorg4/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506) :include('/ var / www / webuse ...')\ n#4 /var/www/webuseorg4/vendor/zendframework/zend-view/src/View.php(207):Zend \在/ var / www / webuseorg4 / vendor / zendframework / zend中查看\ Renderer \ PhpRenderer-> render(NULL)\ n#5 / var / www / webuseorg4 / vendor / zendframework / zend-mvc / src / View / Http / DefaultRenderingStrateg第142行的-servicemanager / src / AbstractPluginManager.php,referer:http://127.0.0.128/user/login 1
我怎么办不是这样?
使用完全限定的类名更新view-helper配置。
'view_helpers' => [
'factories' => [
Application\View\Helper\Messages::class => InvokableFactory::class,
],
'aliases' => [
'messages' => Application\View\Helper\Messages::class
]
],
并在页面login.phtml:
<?php echo $this->messages()->renderErrorMessages($item); ?>
...