我试图重写以前与Codeigniter一起使用的数据库的一些逻辑。设计是这样的一些的条件多到一对多联接存储在加盟表所示:Laravel 4雄辩:多对多的条件加入表
Table user
- user_id
...
Table avatars
- user_id
- image_id
- uploaded_timestamp
- deleted_timestamp
Table images
- image_id
...
在这种情况下,我想通过替身与用户相关联的所有图片表,按上传时间降序排序,不包括已删除的头像(deleted_timestamp不为空)。
我发现使用Eloquent的hasMany不允许加入表中的条件。什么是最简单的方法来实现这种影响,还是我需要求助于以我曾经使用Codeigniter的活动记录类的方式构建完整查询?
注:我发现this answer这表明使用->hasMany(..)->with('another_column_from_pivot_table')
,但似乎只与Laravel 3雄辩的实施工作。看来 - >现在只用于eagar加载。
谢谢。我还发现你可以使用' - > withPivot('column_name')'来获取从belongsToMany返回的数据透视表的列值。但正如你指出的那样,这仍然让我无法添加订单以及在哪里过滤集合。你的方法将会起作用,同时使用foreach对这个集合进行手动提取和排序,但是你的理想更为理想。谢谢! – epocsquadron 2013-02-19 21:15:17