【问题标题】:Get only those users who cancelled a request two or more time in Laravel Eloquent仅获取在 Laravel Eloquent 中取消请求两次或更多次的用户
【发布时间】:2019-04-28 05:46:05
【问题描述】:

我有两张桌子

Providers 和 User_Requests

我只需要获取那些取消了两个或更多请求的提供者

Providers.php

public function trips() {
    return $this->hasMany('App\UserRequests');
}

UserRequests.php

public function provider()
{
    return $this->belongsTo('App\Provider');
}

我怎样才能只获得那些有 2 次以上取消请求的提供商?

user_requests 表有以下列:

provider_id, status

where status => enum=('SEARCHING', 'CANCELLED', 'ACCEPTED')

谢谢!

【问题讨论】:

    标签: php mysql database eloquent laravel-5.5


    【解决方案1】:

    我认为你可以使用:

    $userRequests = UserRequests::where('status','CANCELLED')
                        ->groupBy('provider_id')
                        ->havingRaw('COUNT(*) >= 2')
                        ->with('provider')
                        ->get();
    

    【讨论】:

    • 感谢您的回答,这帮助我找到了正确的方向:我使用以下代码使其工作。提供者::has('cancelled_count', '>=', 2)->get();而在 cancelled_count 方法中,我添加了 where 条件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2016-05-10
    • 2020-04-19
    相关资源
    最近更新 更多