Laravel 5 belongsTo(classname :: class)不起作用

时间:2017-02-22 18:48:24

标签: php laravel-5

由于模型名称更改,我的班级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')无法正常工作。你能帮我解决一下吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

来自Eloquent: Relationships One To One

  

Eloquent通过检查名称来确定默认外键名称   关系方法和后缀方法名称与_id。

由于您似乎正在定义内联关系,因此方法名称可能不是student所以它不是在寻找student_id,它正在寻找{ {1}}。

在你的第二个例子中,你告诉它在哪个领域寻找关系,所以它正在寻找正确的关系。

与此问题无关,但您确实滥用了关系方法。这些应该在模型中定义。