我正在尝试为Zend Framework 3做教程 . 我到了本页的末尾(https://docs.zendframework.com/tutorials/getting-started/database-and-models/),当我转到localhost:8090时,我收到以下错误:
[ Model\AlbumTable::class => function($container) { $tableGateway = $container->get(Model\AlbumTableGateway::class); return new Model\AlbumTable($tableGateway); }, Model\AlbumTableGateway::class => function ($container) { $dbAdapter = $container->get(AdapterInterface::class); $resultSetPrototype = new ResultSet(); $resultSetPrototype->setArrayObjectPrototype(new Model\Album()); return new TableGateway('album', $dbAdapter, null, $resultSetPrototype); }, ], ]; } public function getControllerConfig() { return [ 'factories' => [ Controller\AlbumController::class => function($container) { return new Controller\AlbumController( $container->get(Model\AlbumTable::class) ); }, ], ]; } }
如果我在module.config.php中注释掉“Album”,它将加载基本框架 . 我的composer.json文件有“Album”:“module / Album / src /”,我运行了$ composer dump-autoload .
我检查了一切,无法弄清楚出了什么问题 . 任何建议将不胜感激,谢谢 .
namespace Album;
use Zend\Router\Http\Segment;
return [
'router' => [
'routes' => [
'album' => [
'type' => Segment::class,
'options' => [
'route' => '/album[/:action[/:id]]',
'constraints' => [
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
],
'defaults' => [
'controller' => Controller\AlbumController::class,
'action' => 'index',
],
],
],
],
],
'view_manager' => [
'template_path_stack' => [
'album' => __DIR__ . '/../view',
],
],
];
<? php
namespace Album;
use Zend\Db\Adapter\AdapterInterface;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;
use Zend\ModuleManager\Feature\ConfigProviderInterface;
class Module implements ConfigProviderInterface
{
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}
public function getServiceConfig()
{
return [
'factories' => [
Model\AlbumTable::class => function($container) {
$tableGateway = $container->get(Model\AlbumTableGateway::class);
return new Model\AlbumTable($tableGateway);
},
Model\AlbumTableGateway::class => function ($container) {
$dbAdapter = $container->get(AdapterInterface::class);
$resultSetPrototype = new ResultSet();
$resultSetPrototype->setArrayObjectPrototype(new Model\Album());
return new TableGateway('album', $dbAdapter, null, $resultSetPrototype);
},
],
];
}
public function getControllerConfig()
{
return [
'factories' => [
Controller\AlbumController::class => function($container) {
return new Controller\AlbumController(
$container->get(Model\AlbumTable::class)
);
},
],
];
}
}
我也收到此错误消息:127.0.0.1:52590 [500]:/ - 未捕获的Zend \ ModuleManager \ Exception \ RuntimeException:无法初始化模块(相册) . 在/cygdrive/c/users/kafka/dropbox/zf-tutorial/vendor/zendframework/zend-modulemanager/src/ModuleManager.php:203堆栈跟踪:
0 /cygdrive/c/users/kafka/dropbox/zf-tutorial/vendor/zendframework/zend-modulemanager/src/ModuleManager.php(175):Zend的\ ModuleManager会\ ModuleManager-> loadModuleByName(对象(的Zend \ ModuleManager会\ ModuleEvent ))
1 /cygdrive/c/users/kafka/dropbox/zf-tutorial/vendor/zendframework/zend-modulemanager/src/ModuleManager.php(97):Zend \ ModuleManager \ ModuleManager-> loadModule('Album')
2 /cygdrive/c/users/kafka/dropbox/zf-tutorial/vendor/zendframework/zend-eventmanager/src/EventManager.php(322):Zend \ ModuleManager \ ModuleManager-> onLoadModules(Object(Zend \ ModuleManager \ ModuleEvent) ))
3 /cygdrive/c/users/kafka/dropbox/zf-tutorial/vendor/zendframework/zend-eventmanager/src/EventManager.php(171):Zend \ EventManager \ EventManager-> triggerListeners(Object(Zend \ ModuleManager \ ModuleEvent) ))
第203行的/cygdrive/c/users/kafka/dropbox/zf-tutorial/vendor/zendframework/zend-modulemanager/src/ModuleManager.php中的
1 回答
我在这里发现了问题,只是语法 . 所以感谢Tim Fountain,但不需要更多的帮助 .