Laravel 在hasMany关系上限制为1

Laravel 在hasMany关系上限制为1,laravel,eloquent,has-many,Laravel,Eloquent,Has Many,我有两个相互关联的模型。一个模型包含用户,另一个模型包含所有课程和课程开始的相关时间戳。现在,它们之间的“相关键”是两个表中的“用户id”。在以下情况下,我会设法获取数据: return $this->hasMany(ClassInfo::class,'user_id','user_id'); 这个很好用。但是,由于我在with子句中使用了该模型,因此如果开始时间与用户的另一个课程发生冲突,我只需要指定一个开始给定时间的类。我试过两种方法: return $this->hasMan

我有两个相互关联的模型。一个模型包含用户,另一个模型包含所有课程和课程开始的相关时间戳。现在,它们之间的“相关键”是两个表中的“用户id”。在以下情况下,我会设法获取数据:

return $this->hasMany(ClassInfo::class,'user_id','user_id');
这个很好用。但是,由于我在with子句中使用了该模型,因此如果开始时间与用户的另一个课程发生冲突,我只需要指定一个开始给定时间的类。我试过两种方法:

return $this->hasMany(ClassInfo::class,'user_id','user_id')->take(1);
return $this->hasMany(ClassInfo::class,'user_id','user_id')->limit(1);
但两者都只是给我空的收藏,我不明白为什么会这样? 是否有任何方法可以让它返回,例如,类表中id值最大的一个(对于在用户上注册的每个课程,id是自动递增的)


谢谢你的提示和指导

你是在利用这种关系吗?@JonasStaudenmeir是的,但我可能会找到解决办法。但是我必须先验证一下,在Laravel中没有对有限制的急切加载的原生支持。我已经为此创建了一个包:@JonasStaudenmeir谢谢你的提示:)你不知道是否可以使用eager左/右加入?请为此打开一个新问题。你是否使用与eager loading的关系?@JonasStaudenmeir是的,但我可能会找到解决方案。但是我必须先验证一下,在Laravel中没有对有限制的急切加载的原生支持。我已经为此创建了一个包:@JonasStaudenmeir谢谢你的提示:)你不知道是否可以使用eager左/右加入?请为此打开一个新问题。