【发布时间】:2011-03-16 18:55:45
【问题描述】:
我在站点表中添加了一个新列“功能”,并使用 Doctrine 重新生成了模型。
此代码导致错误:
$siteTable = Doctrine_Core::getTable("Site");
$site = $siteTable->findOneByName("site"); // this line is throwing an exception
例外:
字段列表中的未知列“s.features”.....
我检查了数据库,它包含字段,我还检查了站点模型,表定义包含列信息。所有表的主键都是id。
同样在引发异常的行中,我没有使用新添加的列。如果我从站点对象的表定义中删除该列,那么上面的代码就可以工作......
当我添加新列并从中重新生成模型时,任何表都会发生此错误。
【问题讨论】:
-
你查过数据库有没有列?听起来你还没有重建数据库。
-
能否发布您的模型(例如schema.yml)和您的SQL DB 架构?
-
如果你真的想得到这个答案,请发帖。来自数据库的
DESCRIBE site;的输出。您的 schema.yml 文件。以及生成的/BaseSite.php 文件顶部的 BaseSite 注释块 -
我没有将 Doctrine 与 Zend Framework 一起使用,但 Symfony 有时会发生的情况是,Doctrine 会生成两个版本的模型文件(根据我的经验,这通常是在不同的数据库上重建数据库的结果)一台安装了 APC 而另一台没有安装 APC 的计算机)命令行上的 PHP 通常使用与 Apache 不同的 php.ini 文件,因此在命令行上生成的模型文件并不总是由 Doctrine 在你的网页。无论如何,这可能是导致问题的原因。
标签: php mysql doctrine mysql-error-1054