我試圖重寫以前與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