2015-06-22 42 views
1

我有如下表設置(只在這裏解釋我的問題):不同於Laravel ORM?

qid | value | created_at 
1  1  2014-01-01 00:10 
1  2  2014-01-01 00:12 
2  231  2014-01-01 00:10 
3  hello 2014-01-01 00:10 

我想獲得具有鮮明QIDS,爲了通過created_at DESC數組。

所以陣列應該像(例如只值):

[2, 231, hello] 

我需要一個「原始查詢,具有鮮明的QID列」 - 或有與Laravel5 ORM方法的另一種方式嗎?

回答

2

在這種情況下,您可以在qid上添加groupby以實現該結果。 包括訂單以確保您獲得所需的qid。

例如

->groupBy('qid') 
+0

謝謝!我現在使用:$ Answers = Answer :: where('task_uuid',$ taskuuid) - > orderBy('created_at','desc') - > groupBy('question_uuid') - > get(); - 但我總是得到第一個值,而不是「最新」 - 所以看起來他忽略了created_at子句。 – derdida

+2

如果這不適合你,你可能需要嘗試http://stackoverflow.com/questions/18159465/how-to-order-grouped-results-using-eloquent –

+0

哦謝謝,我會試試看!似乎我需要使用原始查詢方法。 – derdida

4

您需要通過created_at然後按qid訂購。

Answer::orderBy('created_at', 'desc')->groupBy('qid')->get(); 
+0

謝謝!我現在使用:$ Answers = Answer :: where('task_uuid',$ taskuuid) - > orderBy('created_at','desc') - > groupBy('question_uuid') - > get(); - 但我總是得到第一個值,而不是「最新」 - 所以看起來他忽略了created_at子句。 – derdida