首页  >  问答  >  正文

错误代码: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”= 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粉245489391224 天前380

全部回复(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
  • 取消回复