我试图返回所有在分配表中没有行的票证+所有具有相同用户ID的记录。 但是错误不断出现。可能是由于我刚接触laravel。
关系模型
class Ticket extends Model
{
public function AssignedUsers()
{
return $this->belongsToMany(User::class, 'assigns','ticket_id','user_id')->withTimestamps();
}
}
这是代码:
$tickets = Ticket::with('AssignedUsers')
->WhereHas('AssignedUsers', function($q) {
$q->where('assigns.user_id', '=', Auth::user()->id)
->orWhere('assigns.ticket_id','!=','tickets.id');
})
->get();
到目前为止,我可以使用相同的user_id获取所有记录,但是添加no行条件似乎是个问题,而且我不确定是否要以正确的方式来处理它。
答案 0 :(得分:1)
我想你是说这个意思
$tickets = Ticket::with('AssignedUsers')
->whereHas('AssignedUsers', function($q) {
$q->where('assigns.user_id', '=', Auth::user()->id);
})
->orDoesntHave('AssignedUsers')
->get();