首页 > 解决方案 > Laravel 从关系表中计算男性或女性的数量

问题描述

我有以下模型:

UserProgram user_id, program_id.

User

Profile, user_id, gender

Program

function gender我的UserProgram模型中有一个

public function gender()
{
  $gender = "N/A";
  $user = User::find($this->user_id);
  if (!empty($user)) {
    $profile = Profile::where('user_id',$user->id)->first();
    if (!empty($profile)) {
        $gender = $profile->gender;
    }
  }
  return $gender;
}

现在我想运行一个查询来计算我有多少男性或女性用于特定程序。我希望能够做这样的事情。

$male_count = UserProgram::with(‘gender)->where([

  ['program_id',104],[‘gender’,’Male’]

])->count();

标签: phplaravellaravel-5eloquenteloquent-relationship

解决方案


如果您在运行中的查询更改为

$male_count = UserProgram::withCount('gender')->where([['program_id', 104], ['gender', 'Male']])->get();

推荐阅读