第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Laravel Eloquent 中使用子查詢將過(guò)濾關(guān)系的計(jì)數(shù)列添加到選擇

在 Laravel Eloquent 中使用子查詢將過(guò)濾關(guān)系的計(jì)數(shù)列添加到選擇

PHP
阿晨1998 2021-09-05 20:38:39
假設(shè)我有一個(gè)包含四個(gè)模型的 Laravel 5.5 應(yīng)用程序:Class, Student,Assignment和AssignmentSubmissionAClass屬于 many Students,aStudent屬于 many Classes,anAssignmentSubmission屬于 an Assignment、aUser和 a Class。所以表格看起來(lái)像這樣:classes:  id  namestudents:  id  nameclass_student:  class_id  student_idassignments:  id  nameassignment_submissions:  id  class_id  student_id  assignment_id現(xiàn)在,在查詢構(gòu)建器類中,我需要構(gòu)建一個(gè)查詢,該查詢返回Students屬于 的 ,并Class帶有一個(gè)額外的列,該列會(huì)total_assignment_submissions記錄學(xué)生僅為該類提交的作業(yè)數(shù)量。我的第一個(gè)??扛廴缦拢?class->students()->withCount('assignmentSubmissions')->get();但這會(huì)返回該學(xué)生所有課程的總作業(yè)提交。以下 mySql 查詢返回正確的數(shù)據(jù):SELECT *,       (SELECT Count(*)        FROM   `assignment_submission`        WHERE  `student_id` = `students`.`id`               AND `class_id` = ?) AS total_assignment_submissionsFROM   `students`       INNER JOIN `class_student`               ON `students`.`id` = `class_student`.`student_id`WHERE  `class_student`.`class_id` = ?但我似乎無(wú)法以正確的順序獲得selectSub() addSelect()和raw()電話來(lái)獲得我想要的東西。似乎我只使用原始查詢執(zhí)行此操作,但事件 ID 將未經(jīng)處理,否則我可以執(zhí)行此操作,但它只返回該assignment_count字段,而不返回student.$class->students()    ->selectSub(        AssignmentSubmission::selectRaw('count(*)')            ->whereClassId($class->id)->getQuery(),             'total_assignment_submissions'    )->toSql();必須有辦法做到這一點(diǎn)。我在這里缺少什么?
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

withCount() 可以被約束。


$class->students()->withCount(['assignmentSubmissions' => function($q) use($course_id){

    $q->where('course_id', $course_id);

}])->get();

這將限制該特定課程的計(jì)數(shù)。


查看完整回答
反對(duì) 回復(fù) 2021-09-05
  • 1 回答
  • 0 關(guān)注
  • 279 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)