我想加入两个不同的表,例如“ 问题”和“ case_study_posts ”。这些表没有公用键来获取记录。
我想在页面中同时显示问题帖子和案例研究帖子。
我该怎么办?
目前,我正在分别获取这两个表并进行相应的排序,然后合并这两个集合并再次进行排序。
现在,我正在考虑简化这些逻辑以“一次获取两个表并进行排序”
这是我在第一种情况下使用的
$questions = resolve('question')->getListingByFollowers($followings_id,$sort,$per_page,true);
$CaseStudyPosts = resolve('case-study')->getListingByFollowers($followings_id,$sort,$per_page,true);
这是案例研究存储库,具有功能 getListingByFollowers()
public function getListingByFollowers($id,$sort = null,$per_page = 10, $paginate = false){
$listing = $this->caseStudyPost
->with(['user.votes','votes'])
->where('is_active','Y')
->whereIn('user_id',$id);
if(\Auth::user()->role->role_code == config('constants.ROLES.USER.STUDENT')) {
$listing->whereIn('category_id', config('constants.STUDENT_VIEW_CATEGORIES'));
} else {
$listing->whereNotIn('category_id', config('constants.STUDENT_ADD_CATEGORIES'));
}
if($sort == null || $sort == 'newest'){
$listing->orderBy('created_at','desc');
}elseif($sort == 'votes'){
$listing->orderBy('created_at');
}
if($paginate){
return $listing->paginate($per_page);
}
return $listing->get();
}
问题库中的getListingByFollowers()具有几乎相同的结构