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.异常

JPA中id前面有空格导致的"Column 'id' not found"问题

提示SQL:column 'bj' is not found 是啥 怎么解决?