我有以下查询:
public function getPvpBattle()
{
$battle = PvpBattle::where('player1_id','=',$this->id)
->orWhere('player2_id', '=', $this->id)
->where('mode','!=','FINISH')
->first();
if ($battle) return $battle;
else
return false;
}
由于某些原因,它在每个用户上都不起作用,并且会返回player1_id
和player2_id
的不同行,这些行应该在同一场战斗中。
此查询中出现了什么问题以及我如何使player1_id
和player2_id
属于同一行的相同结果的工作和重新计算?
答案 0 :(得分:2)
如何使用此查询?
$id = $this->id;
$battle = PvpBattle::where('mode', '!=', 'FINISH')
->where(function ($query) use ($id) {
$query->where('player1_id', '=' , $id)
->orWhere('player2_id', '=', $id);
})
->first();
详细了解提前查询here。