我正在用Lumen創建一個休息API。我有pictures
& picture_likes
表&模型,我想獲得最喜歡的圖片。查詢生成器到orderBy(groupBy'ed行的數量)並在X天前獲得條目
我Pictures table
樣子..
photo_id | path | owner_id | created_at
我PictureLikes table
看起來像......
id | user_id who liked
0 1
1 2
2 4
3 3
4 5
etc...
我的第一個問題是如何讓最喜歡的照片。我想我可以通過將類似的photo_id分組並按照他們的次數排序來實現最喜歡的照片。但是,我無法弄清楚如何按次數排序。
然後,我可以走得更遠,並獲得最近7天最喜歡的照片(這將相對於今天移動)。我的第二個問題是,如何過濾最喜歡的圖片,僅顯示最近X天的最喜歡的照片?
更新:我在我的第一個問題,成功與此:
$photos = Photo::all(); // returns all photos
$photoLikes = PhotoLikes::all(); // returns all photoLikes
$photoLikes = PhotoLike::select('photo_id', \DB::raw('count(*) as total'))
->groupBy('photo_id')
->orderBy('total', 'desc')
->get()->toArray();
結果如下:
array:10 [
0 => array:2 [
"photo_id" => 1
"total" => 5
]
1 => array:2 [
"photo_id" => 10
"total" => 5
]
..etc
但是,我怎麼可以使用這個變量獲得從剛剛過去的照片X天?
你有嘗試過什麼嗎?你能描述一下你迄今爲止的嘗試嗎? – Ross
@Ross我更新了代碼。我成功了我的第一個問題,但在第二個問題中迷失了...... – senty
要從最後X天獲取照片,是不是隻需在查詢中添加where()子句以獲取其中created_at時間戳記爲比X天前更新? –