在laravel中连接两个完全不同的表

时间:2019-09-10 08:17:24

标签: laravel

我想加入两个不同的表,例如“ 问题”和“ 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()具有几乎相同的结构

0 个答案:

没有答案