亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于相關模型屬性的 Laravel 過濾器

基于相關模型屬性的 Laravel 過濾器

PHP
繁花如伊 2023-05-12 15:57:57
我有兩個模型用戶和任務,它們之間存在多對多關系,任務與自身作為父子關系具有自嵌套關系,現在我想要獲取當前空閑的用戶,即沒有分配任務或分配的任務狀態為已完成或已關閉,下面是我編寫的代碼和它的 toSql,但我仍然讓用戶的任務具有其他狀態,例如 -進展和審查不足$freeEmployees = User::where('role', 'employee')->where(function ($q) {           $q->doesntHave('task')             ->orWhereHas('task', function ($q1) {               $q1->where('status', config('taskstatus.completed'))                   ->orWhere('status', config('taskstatus.closed'));           });       })->get()->take($limit);SELECT    *FROM    `users`WHERE    `role` = 'employee' AND(        NOT EXISTS(        SELECT            *        FROM            `task_checklist`        INNER JOIN `user_task` ON `task_checklist`.`id` = `user_task`.`task_id`        WHERE            `users`.`id` = `user_task`.`user_id` AND `task_checklist`.`archived_at` IS NULL    ) OR EXISTS(    SELECT        *    FROM        `task_checklist`    INNER JOIN `user_task` ON `task_checklist`.`id` = `user_task`.`task_id`    WHERE        `users`.`id` = `user_task`.`user_id`         AND(            `status` = 'Completed' OR `status` = 'Closed')         AND `task_checklist`.`archived_at` IS NULL)    )ORDER BY    `updated_at`DESC
查看完整描述

1 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

為什么不以另一種方式做......


在他們沒有未完成的任務時讓我的員工...


$freeEmployees = User::where('role', 'employee')->whereDoesntHave('tasks', function ($q) {

               $q1->where('status', config('taskstatus.running'))

                   ->orWhere('status', config('taskstatus.uncompleted'));

           });

       })->get()->take($limit);


查看完整回答
反對 回復 2023-05-12
  • 1 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號