使用联接在laravel视图中显示Json数据

时间:2019-02-15 03:48:07

标签: php mysql json laravel-5

我正在尝试使用联接关联表从数据库检索数据到laravel刀片视图。

在我的情况下,我有两个名为interesting_coursescourses的表。这里有些学生可以上很多有趣的课程。因此,courses_id作为json array存储在数据库中,如下所示。

["1","11","15","16"] 

但是我需要加入课程表以获取相关的课程名称,如下所示。

["Hospitality","Business Management","Auto Mobile","Health Care"]

下面是我的控制器

$intresting_courses = DB::table('intresting_courses')
                            ->join('courses','courses.id','=','intresting_courses.courses_id')
                            ->where('intresting_courses.youth_id',$id)
                            ->first();

如何加入表格。

1 个答案:

答案 0 :(得分:0)

您无法将其本地加入查询中。

解决方案是编写两个查询

select * from intresting_courses where youth_id = ? limit 1

select * from courses where id in (1, 2, 3, 4, 5, ...)

通过这种方式,您可以获得学生感兴趣的课程。

这是这些查询的Laravel代码。

$intresting_courses = DB::table('intresting_courses')
                        ->where('intresting_courses.youth_id', $id)
                        ->first();

$courses = DB::table('courses')
             ->whereIn('id', json_decode($intresting_courses->courses_id))
             ->get();