2017-04-18 24 views
0

我寫了以下函數來顯示由 配方名稱,描述,cusine,........ ...組成的表和喜歡。 一切工作正常,但喜歡列不顯示沒有。喜歡bu而不是播種no。配方當我嘗試顯示一列的計數值時,它計數不。在相同的表上存儲在同一行的單個單元中的數組

public function rec(){ 
       $ing = inglist::all(); 
       $rcusine=recipecusine::all(); 
       $rtype=recipetype::all(); 
       $rec = DB::table('recipe_list') 
       ->select('recipe_list.recipe_id','recipe_list.Recipe_name', 
       'recipe_list.Recipe_desc','recipe_list.Recipe_duration', 
       DB::raw('group_concat(ing_list.Ing_name separator ",") as recipe_ingredients'), 
       'recipe_cusine.Cusine_name', 'recipe_type.Recipe_type_name','recipe_list.image', 
       DB::raw('count(likerecipes.likecount) as likes')) 
          ->join('recipe_inglist', 'recipe_list.recipe_id','=','recipe_inglist.Recipe_id') 
          ->join('ing_list', 'recipe_inglist.Ing_id','=','ing_list.ing_id') 
          ->join('recipe_cusine', 'recipe_list.Recipe_cusine_id','=','recipe_cusine.cusine_id') 
          ->join('recipe_type', 'recipe_list.Recipe_type_id','=','recipe_type.Recipe_typeID') 
          ->join('likerecipes', 'recipe_list.recipe_id', '=', 'likerecipes.recipe_id') 
          ->where('recipe_list.recipe_id','>=','1') 
          ->groupBy('recipe_list.recipe_id', 'recipe_list.recipe_name','recipe_list.recipe_desc','recipe_list.recipe_duration', 'recipe_cusine.Cusine_name','recipe_type.Recipe_type_name','recipe_list.image')->get() ; 
/*    var_dump($rec); 
       die();*/ 
      return view('recipe', ['ingredients'=>$ing, 'cusine'=>$rcusine, 'type'=>$rtype,'recipe'=>$rec]); 


      } 

的成分的輸出我得到的是 The table output

,這是我likerecipes表 likerecipes table

有人能幫助我在哪裏,我錯了。

回答

0

由於連接,您的數據通過記錄被複制。由於likerecipes表好像存儲,由一由id場唯一標識,鑄造一個投票,我會算每組的不同likerecipes.id值:

'count(distinct likerecipes.id) as likes' 

我還要介紹distinctgroup_concat()以確保多票贊同不會使同一個ingridients出現多次:

'group_concat(distinct ing_list.Ing_name separator ",") as recipe_ingredients' 
+0

謝謝。它解決了我的問題,但無論如何,列出甚至沒有單一喜歡的食譜?它現在的方式只是給出了至少有一個類似計數的食譜列表 –

+0

檢出外連接(左連接和右連接)。順便說一句,如果你有跟進問題,那麼請在自己的問題中提出,而不是作爲現有問題中的評論。 – Shadow

相關問題