未找到列: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)