Laravel雄辩-何处有和

Laravel雄辩-何处有和,laravel,eloquent,where,Laravel,Eloquent,Where,叶片中的工作台图片: 及 有关数据库中的表,请参见此图片: 在我的高级搜索中,我有两个输入框,分别是第1轮和第2轮。 如果我在第1轮中搜索1,在第2轮中也搜索1,它应该只显示id为1的数据。 就像: $query->where(['column.round' => 1, 'column.score' => $request->score1] and ['column.round' => 2, 'column.score' => $request->s

叶片中的工作台图片:

有关数据库中的表,请参见此图片:

在我的高级搜索中,我有两个输入框,分别是第1轮和第2轮。 如果我在第1轮中搜索1,在第2轮中也搜索1,它应该只显示id为1的数据。 就像:

$query->where(['column.round' => 1, 'column.score' => $request->score1] and ['column.round' => 2, 'column.score' => $request->score2]);
我的问题是如何使用and运算符只显示id为1的数据


这就像在一列中有多个id相同的行。

如果我没弄错,你只想要一个原始数据而不是一个集合

如果是这样,那么:

$query->where(['round1' => 1, 'round2' => 1])->first();

你能试试这个代码吗。提及


您的问题不清楚是否要搜索column.round=1和column.round=2同一列中的两个值,条件为和?@pari Yes。请看我刚才为数据库和blade中的表添加的图片。如果我在第一轮中搜索1,在第二轮中搜索1,它应该是pic中的第一行,会话id仅为1。我刚刚在数据库和blade中为我的表添加了图片。请检查一下,谢谢。因此,如果我在第1轮中搜索1,在第2轮中搜索1,它应该只显示sessionid 1的行。谢谢。我根据你的图片和描述编辑了答案
$query->where(function ($roundQuery) {
            $roundQuery->where('round', '=', 1)
                  ->orWhere('round', '=', 2);
        })
        ->where(function ($scoreQuery) use($request) {
            $scoreQuery->where('score', '=', $request->score1)
                  ->orWhere('score', '=',$request->score2);
        })
        ->get();