为什么在雄辩的情况下进行简单的查询,因为此查询无法正常工作?
$matches = DB::table("matches")
->where(["team_a"=> $request->tid, "match_tipo"=>3])
->orWhere(["team_a"=> $request->tid, "match_tipo"=>3])
->first();
根据Stackoverflow上的其他示例,我应该在类似之处使用查询:
$matches = DB::table("matches")
->where(["match_tipo"=>3])
->where(function($query, $request) {
$query->where('team_h',$request->tid)
->orWhere('team_a',$request->tid);
})
->first();
但是我应该传递第二个参数($ request)。
执行此查询的最简单方法是什么?
您可以这样制作。
[->where(["match_tipo"=>3])
这将是->where("match_tipo"=>3)
,并在查询后使用($ tid)。
$tid = $request->tid;
$matches = DB::table("matches")
->where("match_tipo",3)
->where(function($query) use($tid) {
$query->where('team_h',$tid)
->orWhere('team_a',$tid);
})
->get();
使用回调或关闭作为where函数参数时,您只会使用一个参数,即当前对象
可用于传递$ request的方法
$matches = DB::table("matches")
->where(["match_tipo"=>3])
->where(function($query) use ($request) {
$query->where('team_h',$request->tid)
->orWhere('team_a',$request->tid);
})
->first();