2013-08-17 92 views
1

我在Laravel 4中創建了一個基於投票的網站。我在用戶和post_votes()之間建立了多對多的關係。我的post_votes表有一個user_id,post_id和vote字段(上或下爲0或1)。我想通過總票數,upvotes和downvotes來訂購我的帖子。有什麼想法嗎?按數據透視表的數量排序Laravel 4

+0

最基本的想法是在你的帖子表上加入投票表,然後向上或向下命令查詢。你有沒有嘗試過任何東西?一些代碼將有助於獲得答案:) –

+0

@RobGordijn我認爲他正在試圖用Eloquent來做這件事,通過他在創建問題時使用的標籤來判斷。 –

+0

我結束了有點去了雄辯。我希望能夠清楚說明,但這是我最終做的。 '$ posts = Post :: all(); $ post_array = array(); \t foreach($ posts as $ post){ \t \t $ {post_array [] = array('id'=> $ post-> id,'votes'=> $ post-> votes-> count()); \t} \t function votes($ a,$ b){ \t return $ a ['votes'] - $ b ['votes']; \t} \t \t usort($ post_array,'votes'); \t $ obj_array = array(); \t \t foreach($ post_array as $ post){ \t \t $ obj_array [] = Post :: find($ post ['id']); \t} \t \t $帖= $ obj_array;' – MrJellyhands

回答

0

你應該改變你的表格結構。您應該做的最簡單的事情是在表格中創建一個字段來存儲總票數,並在用戶每次獲得投票時增加它。這不僅可以讓您按票數進行排序,還可以提高應用程序的性能,因爲不需要重新掃描表以找出計數。