错误代码:907 错误消息:ORA-00907:缺少右括号 PHP Laravel(雄辩方法)
P粉245489391
P粉245489391 2024-03-29 14:47:52
0
1
424

从查询中获得集合后,我想对其进行排序。然后,出现了以下错误消息:

错误代码: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粉245489391
P粉245489391

全部回复(1)
P粉652523980

这是解决方案。

解决方案是更改 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', 'orderBy('meetings.start_meeting', 'desc')
    ->paginate(5);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板