Laravel 与递归用户表建立多对多关系

我有两个表用户和付款

用户表如下:

id
fisrtname
lastname

付款表如下:

id
users_id
receiver_id

注意:用户表也是接收者表。

我想要获得已付款但未收到任何付款的用户列表


尚方宝剑之说
浏览 115回答 1
1回答

萧十郎

请尝试我的解决方案:class User extends Authenticatable {    ...    public function payments()    {        return $this->hasMany(Payment::class, 'users_id');    }}$users = \App\User::query()->getModel();$users = $users->whereHas('payments', function ($query) {    /** @var Builder $query */    $query->havingRaw('COUNT(*) = 1');})->whereNotExists(function ($query) {    /** @var Builder $query */    $query->select(['receiver_id'])      ->from('payments')      ->whereRaw('users.id = payments.receiver_id');})->get();
打开App,查看更多内容
随时随地看视频慕课网APP