【问题标题】:Doctrine Column not found: 1054 Unknown column 's.features' in 'field list''Doctrine Column not found: 1054 Unknown column 's.features' in 'field list''
【发布时间】: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


【解决方案1】:

您是否检查了生成的基表类?应该是BaseSite.class.php

./doctrine build-all

应该解决问题。

【讨论】:

    【解决方案2】:

    检查此命令
    转到学说目录
    那里必须有 bin/Doctrine/ 目录

    php bin/doctrine orm:generate-proxies
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      • 2020-12-01
      • 1970-01-01
      • 2018-09-10
      • 2016-07-22
      • 2020-10-13
      • 1970-01-01
      相关资源
      最近更新 更多