ZF2链接到数据库时出现问题

时间:2015-09-12 22:15:28

标签: php zend-framework zend-framework2 zend-db

首先介绍一下。我正在使用wamp和ZF-Skeleton-Application在:

www\firstApplication

所以我浏览了ZF-Website的第一个教程应用程序。这包括模块Album,因此浏览器通过以下路径指向它:

http://localhost/firstApplication/public/album

我得到了

Zend\Db\Adapter\Exception\InvalidQueryException

说... ...

Statement could not be executed (42S02 - 1146 - Table 'blog.album' doesn't exist)

该啧啧还包括

的更改
config\autoload\global.php

中包含以下代码:

 'db' => array(
     'driver'         => 'Pdo',
     'username'       => 'root',  //edit this
     'password'       => '',  //edit this
     'dsn'            => 'mysql:dbname=zf2tutorial;host=localhost',
     'driver_options' => array(
         PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
        ),
     ),

  'service_manager' => array(
     'factories' => array(
         'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
     ),
 ),

在我遵循第二个深入教程之后,这是一个问题因为设置是全局的,所以我对它进行了评论。

该模块具有以下结构:

module/
    Album/
        config/
            module.config.php
        src/
            Album/
                Controller/
                    AlbumController.php
                Form/
                    AlbumForm.php
                Model/
                    Album.php
                    AlbumTable.php
        view/
            album/
                album/
                    add.phtml
                    delete.phtml
                    edit.phtml
                    index.phtml
        autoload_classmap.php
        Module.php

我把上面的设置放在module.config.php中,它导致了博客数据库的异常,我在另一个名为Blog的博客(深入研究中)。

所以我检查了global.php和local.php(在同一个文件夹中)。没有数据库引用。

我还检查了模块中的所有文件。 autoload_classmap.php为空。我也试过把它放在那里,但它仍然是同样的错误。

所以我不知道在哪里搜索导致另一个模块的数据库引用。我的最后一个想法是,它在Module.php中使用以下方法:

public function getAutoloaderConfig()
 {
     return array(
         'Zend\Loader\ClassMapAutoloader' => array(
             __DIR__ . '/autoload_classmap.php',
         ),
         'Zend\Loader\StandardAutoloader' => array(
             'namespaces' => array(
                 __NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
             ),
         ),
}

在教程中写道: “Zend Framework 2的ModuleManager合并了每个模块的module.config.php文件中的所有配置,然后合并到config / autoload(* .global.php和* .local.php文件)中的文件中。”

但是global.php和local.php是emtpy,绝对没有任何内容。

感谢您的帮助。

0 个答案:

没有答案