使用Phalcon开发工具碰到的数据库问题"Table 'XXX' doesn't exist in database when dumping meta-data for XXX"

使用Phalcon开发工具,通过命令行生成程序框架

设置好config.php,在对数据库进行读取、保存数据的时候出现了问题“Table ‘XXX‘ doesn‘t exist in database when dumping meta-data for XXX”

技术分享

注意到上方还有一条语句“Array to string conversion”,找到对应services.php处的代码

1 $di->set(‘db‘, function () use ($config) {
2     return new DbAdapter($config->toArray());
3 });

再查看$config内容

$config = include __DIR__ . "/../app/config/config.php";

config.php内容

 1 <?php
 2 
 3 return new \Phalcon\Config(array(
 4     ‘database‘ => array(
 5         ‘adapter‘     => ‘Mysql‘,
 6         ‘host‘        => ‘localhost‘,
 7         ‘username‘    => ‘root‘,
 8         ‘password‘    => ‘‘,
 9         ‘dbname‘      => ‘eduhelper‘,
10         ‘charset‘     => ‘utf8‘,
11     ),
12     ‘application‘ => array(
13         ‘controllersDir‘ => __DIR__ . ‘/../../app/controllers/‘,
14         ‘modelsDir‘      => __DIR__ . ‘/../../app/models/‘,
15         ‘migrationsDir‘  => __DIR__ . ‘/../../app/migrations/‘,
16         ‘viewsDir‘       => __DIR__ . ‘/../../app/views/‘,
17         ‘pluginsDir‘     => __DIR__ . ‘/../../app/plugins/‘,
18         ‘libraryDir‘     => __DIR__ . ‘/../../app/library/‘,
19         ‘cacheDir‘       => __DIR__ . ‘/../../app/cache/‘,
20         ‘baseUri‘        => ‘/eduHelper/‘,
21     )
22 ));

经分析是数据库连接那块出了问题,可以看到$config中还有一个‘application‘,而我们所需要的显然只有‘database‘

应该将services.php处的代码改为

1 $di->set(‘db‘, function () use ($config) {
2     return new DbAdapter($config->database->toArray());
3 });

或者

$di->set(‘db‘, function () use ($config) {
    return new DbAdapter($config[‘database‘]->toArray());
});

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。