2017-04-21 100 views
0

我有這樣的查詢:如何將我的查詢改成laravel雄辯的ORM?

SELECT 
t1.id as id_guru, t1.nama_guru, 
COALESCE(t2.total, 0) AS total 
FROM `guru` t1 
LEFT JOIN(SELECT id_guru, COUNT(*) as total FROM absensi_guru where status_masuk = "Terlambat" GROUP BY id_guru) t2 ON t1.id = t2.id_guru 

,我想改變我的查詢到laravel口才ORM,我從這個網站試過很多辦法,甚至在laracast。

回答

1

如果我是你,我將使用你有的查詢在MySQL中創建一個View,然後在Laravel中使用Eloquent或Query Builder來查詢數據庫。

萬一,如果你想直接在Laravel中看到,你需要定義Eloquent關係。您可能會發現約雄辯關係HERE

更多信息要在Laravel使用,這裏是一個示例代碼,乾脆不要做複製粘貼,理解它,並更新你的查詢

$multipleitems = DB::table('items') 
      ->leftJoin('votes','items.itemId','=','votes.masterItemId') 
      ->select('items.itemId',DB::raw('ifnull(sum(votes.votes),0) as voteSum')) 
        ->whereBetween('votes.voteDate',array($startDate,$endDate)) 
        ->where($condition) 
        ->groupBy('items.temId') 
        ->get(); 

這裏是ref

+0

不,不,我試着在Mysql(PHPMyAdmin)上的查詢,工作得很好,甚至我試圖改變我的查詢到雄辯ORM,我認爲我的關係是正確的,但我總是在這個錯誤:'COALCASE(t2 .total,0)'因爲在我的表中,它沒有'total'字段 – DarkCode999

+0

更新了答案,請看一下。 –

+0

@ DarkCode999如果有幫助,請接受它作爲正確答案(綠色標記在上下箭頭下,答案)。 –