搜尋

首頁  >  問答  >  主體

錯誤代碼:907 錯誤訊息:ORA-00907:缺少右括號 PHP Laravel(雄辯方法)

從查詢中獲得集合後,我想對其進行排序。然後,出現了以下錯誤訊息:

錯誤代碼:907 錯誤訊息:ORA-00907:缺少右括號位置:202 語句:從存在的「ATTENDANCE_LISTS」中選擇count(*) 作為聚合(從「MEETINGS」中選擇*,其中「ATTENDANCE_LISTS」. 「MEETING_ID」 = "MEETINGS"."ID" 和"STATUS_MEETING" = :p0 和"START_MEETING" <= :p1 order by "START_MEETING" desc) 綁定: [Disetujui,2022-04-19 20:11:24 ] (SQL: select count(*) 作為存在的“ATTENDANCE_LISTS”中的聚合(從“MEETINGS”中選擇*,其中“ATTENDANCE_LISTS”.“MEETING_ID”=“MEETINGS”.“ID”和“STATUS_MEETING”= DisetING_ID”=“MEETINGS”.“ID”和“STATUS_MEETING”= Disetujui 和“START_MEETING”<= 2022-04 -19 20:11:24 按“START_MEETING”訂購desc))

程式碼如下:

$meetings2 = AttendanceLists::whereHas('meeting', function ($query) {
    $now = new DateTime("now");
    $query->where('status_meeting', '=', 'Disetujui')
    ->where('start_meeting', '<=', $now)
    ->orderBy('start_meeting', 'desc')
    ;
})->paginate(5);

我只使用上面的 Laravel eloquent 方法建立了查詢,我已經為此苦苦掙扎了好幾天。請幫助我。

是的,這裡有一個看似相似的貼文: ORA-00907: 缺少右括號

但是,我遇到的問題與使用 SQL 格式手動建立查詢無關。我使用 PHP Laravel eloquent 方法建立了查詢,所以它不可能真的是關於缺少括號的問題。 **

編輯: 簡而言之,當我嘗試按「會議」屬性對出勤清單進行排序(按屬性的屬性排序)時,問題就出現了。有什麼幫助嗎?

P粉245489391P粉245489391243 天前401

全部回覆(1)我來回復

  • P粉652523980

    P粉6525239802024-03-30 09:39:10

    這是解決方案。

    解決方案是更改 whereHas to join。程式碼如下:

    $meetings = AttendanceLists::join('meetings', 'meetings.id', '=', 'attendance_lists.meeting_id')
        ->where('attendance_lists.user_id', '=', $id_user)
        ->where('meetings.status_meeting', '=', 'Disetujui')
        ->where('meetings.start_meeting', '<', $now)
        ->orderBy('meetings.start_meeting', 'desc')
        ->paginate(5);

    回覆
    0
  • 取消回覆