繁体   English   中英

选择Laravel关系表中不存在的记录

[英]Select records where not exist in relational table in laravel

我正在尝试返回在assigns表中没有行的所有故障单+具有相同用户标识的所有记录。 但是错误不断出现。 可能是由于我刚接触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行条件似乎是个问题,而且我不确定我是否以正确的方式来处理它。

我想你的意思是:

$tickets = Ticket::with('AssignedUsers')
    ->whereHas('AssignedUsers', function($q) {
        $q->where('assigns.user_id', '=', Auth::user()->id);
    })
    ->orDoesntHave('AssignedUsers')
    ->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM