小白在某开发过程中,数据库设计如下
课程分类:
id,name,……
课程数据:
id,category_ids,title,……
其中,课程数据表,category_ids字段存储的数据是“1,2”形式,分别对应课程分类表中内容。
需求:输出课程数据时,按category_ids对应输出分类的name字段内容
——
本人框架使用的是TP5.1,但模型关联查询做不到这样查询,
或者我不知道如何应用,故设计了一个比较麻烦的方式,请大家指正。
——
首先,假设已经查询到需要的$courseData;
然后,将category_ids字段内容分割为数组,并通过foreach循环查询对应name字段,最后赋值回原数组中的新字段。
if(strpos($courseData['school_ids'],',')){
$school_ids = explode(',',$courseData['school_ids']);
foreach ($school_ids as $key => $value){
$courseData['school_name'][$key] = School::where('id',$value)->field('name')->find()->toArray()['title'];
}
}
这样,$courseData数组中除原内容外,新增了一个school_name数组,其中就是相对应的学校名称。