2017-06-16 45 views
1

我成功地在Symfony 2.8中使用PHP 5.6的應用程序。在升級到PHP 7.0.20之後,我遇到了使用一對多關係綁定/提交複雜表單的問題。PHP從5.6.30升級到7.0.20後Symfony 2.8上覆雜表單的SQL問題

所得錯誤是:

request.CRITICAL: Uncaught PHP Exception Doctrine\ORM\Query\QueryException: "[Syntax Error] line 0, col 63: Error: Expected Literal, got 'ORDER'" at ..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 44 {"exception":"[object] (Doctrine\ORM\Query\QueryException(code: 0): [Syntax Error] line 0, col 63: Error: Expected Literal, got 'ORDER' at ..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:44, Doctrine\ORM\Query\QueryException(code: 0): SELECT s1 FROM Prfuk\WebquotaBundle\Entity\Workplace s1 WHERE ORDER BY s1.nazev ASC at ..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:39)"} []

WHEREORDER BY之間的缺失部分。奇怪的是,列表數據是好的,填寫表單域來編輯記錄也是好的,問題是隻有當POST請求與當前表單數據合併時,我認爲SQL的缺失部分是由原則生成的。

與其他表格無關的簡單形式正常工作。

我是最新的2.8.x Symfony版本,我能夠通過作曲家更新的最新教義是2.3.6-dev,這是相當古老的,但它似乎是最新的支持/兼容。

這是一個已知的問題嗎? Symfony 2.8是否與PHP 7.0兼容? 你可以給我一些建議如何解決這個問題嗎?

我的頁面類型:

$qb = array(
    'class' => 'Prfuk\\WebquotaBundle\\Entity\\Workplace', 
    'property' => 'nazev', 
    'query_builder' => function(\Prfuk\WebquotaBundle\Entity\WorkplaceRepository $repository) { 
     return $repository 
      ->createQueryBuilder('s1') 
      ->add('orderBy', 's1.nazev ASC'); 
    }, 
    'attr' => array(
     "class" => "input_text_nazev"), 
     'label' => "Pracoviště", 
    ); 
$builder->add('pracoviste', 'entity', $qb); 

我的控制器:

$form = $this->createForm(new FolderType($this->getDoctrine()->getEntityManager()), $folder); 
if ($request->isMethod('POST')) { 
    //print_r($form->getData()); // works here 
    $form->bind($request); // throws an exception 

ORM:

Prfuk\WebquotaBundle\Entity\Folder: 
    type: entity 
    table: null 
    repositoryClass: Prfuk\WebquotaBundle\Entity\FolderRepository 
    fields: 
     id: 
      type: integer 
      id: true 
      generator: 
       strategy: AUTO 
     nazev: 
      type: string 
      length: '255' 
     cesta: 
      type: string 
      length: '255' 
     kvota: 
      type: integer 
     uzivatel: 
      type: string 
      length: '255' 
     poznamka: 
      type: text 
     vyuziti_mb: 
      type: integer 
      options: 
       default: 0 
    manyToOne: 
     pracoviste: 
      targetEntity: Workplace 
      inversedBy: pracoviste 
      joinColumn: 
       name: pracoviste 
       referencedColumnName: id 
     db: 
      targetEntity: DatabaseInfo 
      inversedBy: db 
      joinColumn: 
       name: db 
       referencedColumnName: id 
     skupina: 
      targetEntity: GroupInfo 
      inversedBy: skupina 
      joinColumn: 
       name: skupina 
       referencedColumnName: id 
     webhost: 
      targetEntity: WebhostInfo 
      inversedBy: webhost 
      joinColumn: 
       name: webhost 
       referencedColumnName: id 
    lifecycleCallbacks: { } 

編輯:堆棧跟蹤(刪節文件路徑):

[1] Doctrine\ORM\Query\QueryException: [Syntax Error] line 0, col 63: Error: Expected Literal, got 'ORDER' 
    at n/a 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 44 

    at Doctrine\ORM\Query\QueryException::syntaxError('line 0, col 63: Error: Expected Literal, got 'ORDER'', object(QueryException)) 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 396 

    at Doctrine\ORM\Query\Parser->syntaxError('Literal') 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2363 

    at Doctrine\ORM\Query\Parser->Literal() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2550 

    at Doctrine\ORM\Query\Parser->ArithmeticPrimary() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2485 

    at Doctrine\ORM\Query\Parser->ArithmeticFactor() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2453 

    at Doctrine\ORM\Query\Parser->ArithmeticTerm() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2427 

    at Doctrine\ORM\Query\Parser->SimpleArithmeticExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2414 

    at Doctrine\ORM\Query\Parser->ArithmeticExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2749 

    at Doctrine\ORM\Query\Parser->ComparisonExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2277 

    at Doctrine\ORM\Query\Parser->SimpleConditionalExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2177 

    at Doctrine\ORM\Query\Parser->ConditionalPrimary() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2153 

    at Doctrine\ORM\Query\Parser->ConditionalFactor() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2121 

    at Doctrine\ORM\Query\Parser->ConditionalTerm() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2096 

    at Doctrine\ORM\Query\Parser->ConditionalExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 1209 

    at Doctrine\ORM\Query\Parser->WhereClause() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 759 

    at Doctrine\ORM\Query\Parser->SelectStatement() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 726 

    at Doctrine\ORM\Query\Parser->QueryLanguage() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 229 

    at Doctrine\ORM\Query\Parser->getAST() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 304 

    at Doctrine\ORM\Query\Parser->parse() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php line 233 

    at Doctrine\ORM\Query->_parse() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php line 245 

    at Doctrine\ORM\Query->_doExecute() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php line 753 

    at Doctrine\ORM\AbstractQuery->execute(null, '1') 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php line 542 

    at Doctrine\ORM\AbstractQuery->getResult() 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php line 126 

    at Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader->getEntitiesByIds('id', array('27')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php line 153 

    at Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader->loadChoicesForValues(array('27'), array(object(IdReader), 'getIdValue')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/ChoiceList/LazyChoiceList.php line 122 

    at Symfony\Component\Form\ChoiceList\LazyChoiceList->getChoicesForValues(array('27')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php line 46 

    at Symfony\Component\Form\Extension\Core\DataTransformer\ChoiceToValueTransformer->reverseTransform('27') 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 1190 

    at Symfony\Component\Form\Form->viewToNorm('27') 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 639 

    at Symfony\Component\Form\Form->submit('27', true) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 579 

    at Symfony\Component\Form\Form->submit(array('pracoviste' => '27', 'cesta' => 'simonju_botazah', 'kvota' => '100', 'uzivatel' => 'simonju', 'skupina' => '', 'poznamka' => 'fake záznam pro člena skupiny www-botazah', 'db' => '', 'webhost' => '', 'vyuziti_mb' => '0')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 692 

    at Symfony\Component\Form\Form->bind(object(Request)) 
     in /..../Symfony/src/Prfuk/WebquotaBundle/Controller/FolderController.php line 90 

    at Prfuk\WebquotaBundle\Controller\FolderController->editAction(object(Request), '650') 
     in line 

    at call_user_func_array(array(object(FolderController), 'editAction'), array(object(Request), '650')) 
     in /..../Symfony/app/bootstrap.php.cache line 3247 

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1') 
     in /..../Symfony/app/bootstrap.php.cache line 3206 

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true) 
     in /..../Symfony/app/bootstrap.php.cache line 3360 

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true) 
     in /..../Symfony/app/bootstrap.php.cache line 2562 

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) 
     in /..../Symfony/web/app_dev.php line 28 

[2] Doctrine\ORM\Query\QueryException: SELECT s1 FROM Prfuk\WebquotaBundle\Entity\Workplace s1 WHERE ORDER BY s1.nazev ASC 
    at n/a 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 39 

    at Doctrine\ORM\Query\QueryException::dqlError('SELECT s1 FROM Prfuk\WebquotaBundle\Entity\Workplace s1 WHERE ORDER BY s1.nazev ASC') 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 396 

    at Doctrine\ORM\Query\Parser->syntaxError('Literal') 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2363 

    at Doctrine\ORM\Query\Parser->Literal() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2550 

    at Doctrine\ORM\Query\Parser->ArithmeticPrimary() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2485 

    at Doctrine\ORM\Query\Parser->ArithmeticFactor() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2453 

    at Doctrine\ORM\Query\Parser->ArithmeticTerm() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2427 

    at Doctrine\ORM\Query\Parser->SimpleArithmeticExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2414 

    at Doctrine\ORM\Query\Parser->ArithmeticExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2749 

    at Doctrine\ORM\Query\Parser->ComparisonExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2277 

    at Doctrine\ORM\Query\Parser->SimpleConditionalExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2177 

    at Doctrine\ORM\Query\Parser->ConditionalPrimary() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2153 

    at Doctrine\ORM\Query\Parser->ConditionalFactor() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2121 

    at Doctrine\ORM\Query\Parser->ConditionalTerm() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 2096 

    at Doctrine\ORM\Query\Parser->ConditionalExpression() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 1209 

    at Doctrine\ORM\Query\Parser->WhereClause() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 759 

    at Doctrine\ORM\Query\Parser->SelectStatement() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 726 

    at Doctrine\ORM\Query\Parser->QueryLanguage() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 229 

    at Doctrine\ORM\Query\Parser->getAST() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php line 304 

    at Doctrine\ORM\Query\Parser->parse() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php line 233 

    at Doctrine\ORM\Query->_parse() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php line 245 

    at Doctrine\ORM\Query->_doExecute() 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php line 753 

    at Doctrine\ORM\AbstractQuery->execute(null, '1') 
     in /..../Symfony/vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php line 542 

    at Doctrine\ORM\AbstractQuery->getResult() 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Form/ChoiceList/ORMQueryBuilderLoader.php line 126 

    at Symfony\Bridge\Doctrine\Form\ChoiceList\ORMQueryBuilderLoader->getEntitiesByIds('id', array('27')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php line 153 

    at Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader->loadChoicesForValues(array('27'), array(object(IdReader), 'getIdValue')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/ChoiceList/LazyChoiceList.php line 122 

    at Symfony\Component\Form\ChoiceList\LazyChoiceList->getChoicesForValues(array('27')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php line 46 

    at Symfony\Component\Form\Extension\Core\DataTransformer\ChoiceToValueTransformer->reverseTransform('27') 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 1190 

    at Symfony\Component\Form\Form->viewToNorm('27') 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 639 

    at Symfony\Component\Form\Form->submit('27', true) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 579 

    at Symfony\Component\Form\Form->submit(array('pracoviste' => '27', 'cesta' => 'simonju_botazah', 'kvota' => '100', 'uzivatel' => 'simonju', 'skupina' => '', 'poznamka' => 'fake záznam pro člena skupiny www-botazah', 'db' => '', 'webhost' => '', 'vyuziti_mb' => '0')) 
     in /..../Symfony/vendor/symfony/symfony/src/Symfony/Component/Form/Form.php line 692 

    at Symfony\Component\Form\Form->bind(object(Request)) 
     in /..../Symfony/src/Prfuk/WebquotaBundle/Controller/FolderController.php line 90 

    at Prfuk\WebquotaBundle\Controller\FolderController->editAction(object(Request), '650') 
     in line 

    at call_user_func_array(array(object(FolderController), 'editAction'), array(object(Request), '650')) 
     in /..../Symfony/app/bootstrap.php.cache line 3247 

    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1') 
     in /..../Symfony/app/bootstrap.php.cache line 3206 

    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true) 
     in /..../Symfony/app/bootstrap.php.cache line 3360 

    at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true) 
     in /..../Symfony/app/bootstrap.php.cache line 2562 

    at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) 
     in /..../Symfony/web/app_dev.php line 28 
+1

你確定你有2.8,因爲Form :: bind在2.3中被折舊了。教義應該是2.5。我懷疑你的應用程序比你想象的要老得多。 – Cerad

+0

是的,它是2.8.22。該方法已被棄用,但直到3.0它在那裏。我也嘗試使用submit()和handleRequest(),兩者都給了我相同的結果。 –

+0

我沒有弄清楚如何改變composer.json以獲得更近的教義。 2.4和2.5只是在依賴性檢查中給出錯誤。 –

回答

0

我終於解決了這個問題:

  1. 舊學說包(2.3.x版本),這是由於某種原因,沒有更新,2月,當我升級的Symfony 2.8(我甚至在作曲家高興的時候都不知道)。

  2. 與由app_dev.php產生回溯的幫助下,我縮小了錯誤降至Symfony的/供應商/教義/ ORM/LIB /學說/ ORM/QueryBuilder.php的andWhere()方法:

    public function andWhere($where) 
    { 
        $where = $this->getDQLPart('where'); 
        $args = func_get_args(); 
        if ($where instanceof Expr\Andx) { 
         $where->addMultiple($args); 
        } else { 
         array_unshift($args, $where); 
         $where = new Expr\Andx($args); 
        } 
        return $this->add('where', $where, true); 
    } 
    

有行爲的改變爲func_get_args()因爲PHP 7.0.0:

This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

If the arguments are passed by reference, any changes to the arguments will be reflected in the values returned by this function. As of PHP 7 the current values will also be returned if the arguments are passed by value.

短期解決辦法是交換的代碼前兩行中的此方法。但是在代碼中有更多的地方使用相同的邏輯模式,所以我必須找到升級原則的方法。

  1. 升級學說對我來說是一項艱鉅的任務,但我成功了。這是最後的作曲家。JSON我現在有:

    { 
        "name": "symfony/framework-standard-edition", 
        "license": "MIT", 
        "type": "project", 
        "description": "The \"Symfony Standard Edition\" distribution", 
        "autoload": { 
         "psr-0": { "": "src/" } 
        }, 
        "require": { 
         "php": ">=5.3.9", 
         "symfony/symfony": "2.8.*", 
         "doctrine/common": "2.5.*", 
         "doctrine/dbal": "2.5.*", 
         "doctrine/orm": "~2.5.0", 
         "doctrine/doctrine-bundle": "~1.4.0", 
         "twig/extensions": "1.0.*", 
         "symfony/assetic-bundle": "2.3.*", 
         "symfony/swiftmailer-bundle": "2.3.*", 
         "symfony/monolog-bundle": "2.3.*", 
         "sensio/distribution-bundle": "4.0.*", 
         "sensio/framework-extra-bundle": "3.0.*", 
         "sensio/generator-bundle": "2.4.*", 
         "jms/security-extra-bundle": "1.6.*", 
         "jms/di-extra-bundle": "1.4.*", 
         "incenteev/composer-parameter-handler": "~2.0" 
        }, 
        "minimum-stability": "stable", 
        "scripts": { 
         "post-install-cmd": [ 
          "Incenteev\\ParameterHandler  \\ScriptHandler::buildParameters", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
         ], 
         "post-update-cmd": [ 
          "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
          "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
         ] 
        }, 
        "config": { 
         "bin-dir": "bin" 
        }, 
        "extra": { 
         "symfony-app-dir": "app", 
         "symfony-web-dir": "web", 
         "incenteev-parameters": { 
          "file": "app/config/parameters.yml" 
         } 
        } 
    } 
    
  2. 有了新的知識,我是abelt找到在網絡上更多的相關信息,即 https://github.com/doctrine/doctrine2/issues/4712

謝謝大家誰回答。

0

試試這個:

'query_builder' => function(\Prfuk\WebquotaBundle\Entity\WorkplaceRepository $repository) { 
     return $repository 
      ->createQueryBuilder('s1') 
      ->orderBy('s1.nazev','ASC'); 
    }, 
+0

它沒有任何區別。另外,如果我省略了排序,問題仍然存在。 SQL錯誤消息只改變爲'QueryException:[Syntax Error] line 0,col -1:Error:Expected Literal,got up of string。',可能和預期的一樣。 –

+0

我認爲問題不在QueryBuilder本身,因爲它在其他情況下工作良好(即當我打開記錄進行編輯時,html表單字段填充了正確的數據。我想問題是代碼中的某個地方請求和表單數據,並且帶有記錄ID的WHERE子句不會正確傳遞給QueryBuilder。有趣的是,問題不在PHP 5.6中,僅在7中,所以也許有一些PHP版本相關的代碼。一些被棄用的函數,但是在日誌中沒有這樣的錯誤,這將指示使用不存在的函數。 –