Php 条令\DBAL\DBALException:平台mssql不支持限制查询中的偏移量值

Php 条令\DBAL\DBALException:平台mssql不支持限制查询中的偏移量值,php,doctrine-orm,doctrine,symfony4,Php,Doctrine Orm,Doctrine,Symfony4,这个错误很直接。我使用Symfony 4和MSSQL Server作为数据库服务器,配置如下: driver: 'sqlsrv' url: 'mssql://username:password@host:1433/db' 使用setFirstResult()时会发生错误 错误消息: In AbstractPlatform.php line 3359: [Doctrine\DBAL\DBALException] Platfo

这个错误很直接。我使用Symfony 4和MSSQL Server作为数据库服务器,配置如下:

driver: 'sqlsrv'
url: 'mssql://username:password@host:1433/db'
使用setFirstResult()时会发生错误

错误消息:

In AbstractPlatform.php line 3359:
[Doctrine\DBAL\DBALException]                                    
Platform mssql does not support offset values in limit queries.
跟踪:

 () at /var/www/html/ple-studio/vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php:3359
 Doctrine\DBAL\Platforms\AbstractPlatform->modifyLimitQuery() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php:545
 Doctrine\ORM\Query\SqlWalker->walkSelectStatement() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Exec/SingleSelectExecutor.php:42
 Doctrine\ORM\Query\Exec\SingleSelectExecutor->__construct() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/Query/SqlWalker.php:278
 Doctrine\ORM\Query\SqlWalker->getExecutor() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php:398
 Doctrine\ORM\Query\Parser->parse() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php:283
 Doctrine\ORM\Query->_parse() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php:295
 Doctrine\ORM\Query->_doExecute() at /var/www/html/ple-studio/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php:967
我的解决方案是手动使用原始查询:

$sql .= ' OFFSET ' . $offset . ' ROWS FETCH NEXT ' . $itemPerPage . ' ROWS ONLY';
但是这个解决方案会扼杀使用ORM的目的,如果我切换到MySQL,它将无法工作


解决上述错误的正确方法是什么?

看起来您可能需要更改配置驱动程序值,如下所示:

driver: 'mssql'

这听起来很奇怪,因为将
sqlsrv
列为MS SQL Server的合适驱动程序
mssql
未列在已接受的
驱动程序
值下。请不要相信原则未在内部将setFirstResult和setMaxResults映射到“偏移/提取”解决方案。我正在为带有分页的数据表使用外部库,无法使用原始查询解决方案。我正试图从官方的条令论坛得到帮助,否则我会在这件事上悬赏。
driver: 'mssql'