【发布时间】:2018-08-26 13:29:42
【问题描述】:
语言表有:id、简码
cmets表有id、user_id、comment、language_id(外键)
在评论模型中,我将语言定义为 hasOne 关系
在语言模型中,我将 Comments 定义为 hasMany 关系(这是错误的吗?)。
在 Tinker 中,当我尝试执行时出现此错误:$comment->language()->get():
Column not found: 1054 Unknown column 'languages.comment_id' in 'where clause' (SQL: select * from `languages` where `languages`.`comment_id` = 7 and `languages`.`comment_id` is not null)'
为什么 Laravel 在语言表中搜索 comment_id?看来我完全误解了一些东西。
获取语言简码的正确方法是什么?我认为 $comment->language()->shortcode 应该可以工作。
什么是预加载所有 language_id 和短代码信息而不执行重复查询的最有效方法,因为这经常使用?
【问题讨论】:
-
评论模型应该有一个belongsTo关系,而不是hasOne。此外,表应命名为 cmets 和语言,而不是注释和语言。