这看起来很容易,但由于某种原因,我无法弄清楚这里发生了什么。我有使用存储库设计模式的Laravel应用程序。我有一个部门模型和一个车站模型。
class Teacher extends 'Eloquent {
use SoftDeletingTrait;
public function students()
{
return $this->hasMany('AppName'Models'Student');
}
}
class Student extends 'Eloquent {
use SoftDeletingTrait;
public function teacher()
{
return $this->belongsTo(''AppName'Models'Teacher');
}
}
我有一个从学生表中的teacher_id字段到教师表中的id字段的FK。我必须将"id"作为第二个参数传递,否则在教师表sql异常中找不到teacher_id列。
当我返回时
Teacher::find($teacher_id)->students;
从存储库中,它给了我教师表中的一行,就好像我返回了一样
Teacher::find($teacher_id);
我在这里错过了什么?看起来应该行得通。。为什么要在教师表而不是学生表中查找teacher_id?
哇,我真不敢相信我在这上面花了这么多时间,答案如此明显。我不小心在学生模型中将$table变量设置为"教师"。