PHP Laravel数据库:从一个表中获取所有条目+更多

时间:2017-02-04 16:22:55

标签: php mysql laravel

我的问题有点抽象,所以我无法解释。

我有一些表:表1称为videos,其他表是戴尔,惠普,宏基等类别。

表1中包含 auto_increment 主要ID 1,2,3,4等的视频。 视频编号1来自戴尔,2号是HP,3号是戴尔,4是宏碁。 表1中的数字1也表示为ID 1,表2中的数字2表示为ID 2,表3中的数字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,

(我有很多东西)

问题是,在索引页面上它只显示数字1.有人有想法吗?

1 个答案:

答案 0 :(得分:1)

whereIn用于多个ID并使用explode方法生成ID数组

        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

中的所有其他代码