Doctrine Column not found: 1054 Unknown column 's.features' in 'field list''
Posted
技术标签:
【中文标题】Doctrine Column not found: 1054 Unknown column \'s.features\' in \'field list\'\'【英文标题】: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 在你的网页。无论如何,这可能是导致问题的原因。
【参考方案1】:
您是否检查了生成的基表类?应该是BaseSite.class.php
./doctrine build-all
应该解决问题。
【讨论】:
【参考方案2】:检查此命令 转到学说目录 那里必须有 bin/ 和 Doctrine/ 目录
php bin/doctrine orm:generate-proxies
【讨论】:
以上是关于Doctrine Column not found: 1054 Unknown column 's.features' in 'field list''的主要内容,如果未能解决你的问题,请参考以下文章
laravel-8 whreRelation 说 Column not found: 1054 Unknown column 'relation' in 'where Clause'
JDBC 报错 "SQLException: Column 'addtime' not found",求助!
java.sql.SQLException: Column 'class' not found.异常没有找到列
hibernate 出现Caused by: java.sql.SQLException: Column 'id' not found.异常