【问题标题】:Column not found: 1054 Unknown issue in laravel 4未找到列:1054 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 ... 那么您正在尝试访问一个不存在的列,它们会有所不同。

标签: php laravel laravel-4 laravel-migrations


【解决方案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】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-22
    • 2020-05-13
    • 2016-04-29
    • 2021-08-08
    • 2019-11-11
    • 2016-07-12
    • 2018-02-21
    相关资源
    最近更新 更多