Laravel-用另一个查询过滤查询

时间:2019-08-31 23:56:56

标签: php laravel

非常简单的问题。

我有一个查询:

$submissions = Submission::where('removed', 0)
               ->where('deleted', 0)
               ->orderBy('created_at', 'desc')
               ->paginate(40);

我想要其他查询

$savedSubmissionArray = SavedSubmission::where('user_id', Auth::user()->id)->get('id');

通过将提交的ID与SavedSubmission的$submissions字段进行匹配来基于'submission_id'过滤结果。

我对此的尝试是:

$submissions = DB::table('submissions')->where('removed', 0)
               ->where('deleted', 0)
               ->orderBy('created_at', 'desc')
               ->paginate(40);

$savedSubmissionArray = DB::table('SavedSubmission')->where('user_id', Auth::user()->id)
                       ->joinSub($submissions, 'submissions', function ($join) {
                             $join->on('saved_submissions.submission_id', '=', 'submissions.id');       
                       })
                       ->get('id');

但是我不能完全确定joinsub应该是我在这里使用的,因为它会返回:

  

InvalidArgumentException没有消息

1 个答案:

答案 0 :(得分:0)

您可以使用类似的东西

$data = DB::table('submissions') 
            ->join('saved_submissions', 'submissions.id', '=', 'saved_submissions.submission_id')
            ->where(['submissions.removed' =>0, 'saved_submissions.user_id' => Auth::user()->id']) 
            ->select('fields you want to select') 
            ->get();

根据需要在where子句中添加更多字段以过滤结果