2017-02-04 25 views
2

我的問題有點抽象,所以我不能真正解釋。PHP Laravel數據庫:獲取一個表中的所有條目+更多

我有幾個表:表1被稱爲videos和其他表都是類別,如戴爾,惠普,宏碁等

在表1中是具有AUTO_INCREMENT主ID的1,2,3,4等 視頻視頻1號是戴爾,2號是惠普,3號是戴爾,4號是宏碁。 數1也是在表戴爾爲ID 1,號2是表HP作爲ID 2,編號3是表戴爾ID 3和4是在宏基作爲ID 4.

public function showCategory($cat) { 
    switch ($cat) { 
     case 'dell': 
      $dell = DB::table('dell')->get(); 
      $videoid = ''; 

      foreach ($dell as $video) { 
       $videoid .= $video->videoid.','; 
      } 

      echo $videoid; // this is an echo (test) 

      $videos = DB::table('videos') 
       ->where('id', $videoid) 
       ->orderBy('id', 'DESC') 
       ->paginate(25); 
      break; 

     default: 
      # code... 
      break; 
    } 

    return view('index')->with(array('videos' => $videos)); 
} 

在這點,echo $ videoid;會告訴我所有的ID,如:

1,3,40,42,43,44,46,58,61,67,68,73,86,101,102,103,105,106,112,117,121,122,123,124, 

(我有很多entrys)

的問題是,該指數頁面上只顯示號碼1.有沒有人的想法?

+0

把var_dump($ videos);以上的回報,並顯示將會是一個輸出 – patwoj98

+0

做了什麼。它只輸出數字1. –

回答

1

使用whereIn多個ID和爆炸方法使IDS

 echo $videoid; // this is an echo (test) 
     $videoArray = explode("," , $videoid); 
     $videos = DB::table('videos')->whereIn('id', $videoArray)->orderBy('id', 'DESC')->paginate(25); 
     break; 

更新的數組:

您也可以使用簡單的加入

$videos = DB::table('videos as v') 
      ->join('dell as d','d.videoid','=','v.id') 
      ->orderBy('v.id', 'DESC') 
      ->select('v.*') 
      ->paginate(25); 
    break; 

內刪除所有其他代碼案例dell

+0

'$ videoArray = $ dell-> pluck('videoid');' - 不需要'$ videoid'字符串。 –

+0

工作!謝謝。 –

相關問題