由于模型名称更改,我的班级select c1.ClientID, c1.Date_Lapse, min(c2.Date_Effective) as Date_Effective
from Fact_Episodes c1
left join Fact_Episodes c2
on c1.ClientID = c2.ClientID
and c2.Date_Effective > c1.Date_Effective
group by c1.ClientId, c1.Date_Lapse
现在无法正常运行。
使用名为Student
的数据库:
assos
与模型`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` text COLLATE utf8mb4_unicode_ci NOT NULL,
`student_id` text COLLATE utf8mb4_unicode_ci NOT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
,
查询Asso
返回App\Asso::first()->belongsTo(Student::class)
当查询null
返回关联的学生时。
我不明白为什么App\Asso::first()->belongsTo('App\Student','student_id')
无法正常工作。你能帮我解决一下吗?
非常感谢
答案 0 :(得分:1)
来自Eloquent: Relationships One To One:
Eloquent通过检查名称来确定默认外键名称 关系方法和后缀方法名称与_id。
由于您似乎正在定义内联关系,因此方法名称可能不是student
所以它不是在寻找student_id
,它正在寻找{ {1}}。
在你的第二个例子中,你告诉它在哪个领域寻找关系,所以它正在寻找正确的关系。
与此问题无关,但您确实滥用了关系方法。这些应该在模型中定义。