Laravel 9 不支持SQL server 2008数据库分页,有什么解决方案

1. 运行环境

windows 11

1). 当前使用的 Laravel 版本?

Laravel Framework 9.8.1
//: <> (使用 php artisan --version 命令查看)

2). 当前使用的 php/php-fpm 版本?

PHP 版本:8.0.11

php-fpm 版本:

3). 当前系统

windows 11
//: <> (期待数值 Windows 10 / Ubuntu 20.4 / CentOS 8 )

4). 业务环境

Windows Server 2016
//: <> (期待信息 开发环境生产环境)
//: <> (是否使用负载均衡?请提供相关信息)

5). 相关软件版本

SQL server 2008
//: <> (提供相关软件的版本,如 Nginx 、MySQL、MongoDB 等)

2. 问题描述?

laravel 8分页运行正常。
laravel 9更新后,在使用paginate分页时候报错,Incorrect syntax near ‘offset’.
网上查询知道是:SQL Server 2008数据库分页问题,不支持oFFset。需要更新数据库到SQL Server 2012。
但是公司业务关系数据库没法升级。
laravel中是否有相关设置解决办法?

3. 您期望得到的结果?

laravel 9 在使用SQL Server 2008数据能够实现分页paginate
//: <> (能截图就截图。)

4. 您实际得到的结果?

Laravel 9 不支持SQL server 2008数据库分页,有什么解决方案

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

file

直接把这段注释了

if (! empty($components['orders'])) {
    return parent::compileSelect($query)." offset {$query->offset} rows fetch next {$query->limit} rows only";
}
1年前 评论
讨论数量: 3

laravel 8 分页运行正常。 laravel 9 更新后,在使用 paginate 分页时候报错,Incorrect syntax near ‘offset’.

这就说明问题所在了,应该是 8 的adaptor 适配了,9的没适配,找到后修改掉自己 composer 替换掉vendor下的文件应该是可行的,或者给作者提 pr

2年前 评论
LeO荣 (楼主) 1年前

file

直接把这段注释了

if (! empty($components['orders'])) {
    return parent::compileSelect($query)." offset {$query->offset} rows fetch next {$query->limit} rows only";
}
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!