未找到列:1054 laravel 4 中的未知问题

Posted

技术标签:

【中文标题】未找到列:1054 laravel 4 中的未知问题【英文标题】:Column not found: 1054 Unknown issue in laravel 4 【发布时间】:2015-07-05 11:20:17 【问题描述】:

在 laravel 4 中显示一对多关系时遇到这个问题

 SQLSTATE[42S22]: Column not found: 1054 Unknown column 
'subject_start.teacher_subject_id' in 'where clause'
(SQL: select * from `subject_start` where `subject_start`.`teacher_subject_id` = 1)

但是我已经查看了迁移文件和数据库表,我看到了这个名为teach_sub_id 的列。为什么 laravel 会抛出这个 QueryException。

有什么建议吗?

【问题讨论】:

如果它被称为 teach_sub_id 并且您在查询中使用 teacher_subject_id ... 那么您正在尝试访问一个不存在的列,它们会有所不同。 【参考方案1】:

我非常有信心,您的表 subject_start 中实际上不存在teacher_subject_id。如果你打开你的 mysql 控制台并输入,你可以仔细检查它

desc subject_start;

这将显示此表中存在的所有列。

如果您打算使用不同的列,那么您可以像这样更改您的 Eloquent 关系

$this->hasMany("TeacherSubject", "custom_key_column")

【讨论】:

我也是 Margus Pala 我也很有信心,我之前从 mysql 控制台检查过。我也从 laravel Schema $columns = Schema::getColumnListing('subject_start'); teacher_subject_id 不存在,但是当显示 subject_start 和teacher_subject 之间的一对多关系时,laravel 抛出上述异常 太棒了,谢谢 Margus Pala 先生,现在我可以很好地建立关系,对不起,我不能投票给你的答案,我没有足够的理由这样做。但直到现在我不明白为什么会发生这个错误,如果你有任何想法请告诉我【参考方案2】:

复制查询并直接在数据库上运行。你会看到你的查询是否正确。

【讨论】:

以上是关于未找到列:1054 laravel 4 中的未知问题的主要内容,如果未能解决你的问题,请参考以下文章

未找到列:1054 'on 子句中的未知列 'locations.id'

未找到列:1054“where 子句”中的未知列“MONTH(date)”[重复]

未找到列:1054“on 子句”中的未知列“comments.commenter_id”

未找到列:Laravel 5 多对多关系查询中“on 子句”中的 1054 未知列“managers.id”

消息:SQLSTATE [42S22]:未找到列:1054 “字段列表”中的未知列“t0._firstName”

SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列 'id'(SQL:select * from `songs` where `id` = 5 limit 1)