为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
尚方宝剑之说 2023-06-24 17:32:20
我有两个表用户和付款用户表如下:id fisrtname lastname付款表如下:id users_id receiver_id注意:用户表也是接收者表。我想要获得已付款但未收到任何付款的用户列表
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

请尝试我的解决方案:



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();


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信