【问题标题】:Doctrine DQL throws fatal error on query builderDoctrine DQL 在查询生成器上引发致命错误
【发布时间】:2018-12-20 16:39:13
【问题描述】:

我遵循 Doctrine 中的分页示例,但出现致命错误:

PHP Fatal error:  Uncaught Doctrine\ORM\Query\QueryException: SELECT * FROM Model\Report r in /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:43
Stack trace:
#0 /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(456): Doctrine\ORM\Query\QueryException::dqlError('SELECT * FROM M...')
#1 /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(2253): Doctrine\ORM\Query\Parser->syntaxError('IdentificationV...', Array)
#2 /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(1182): Doctrine\ORM\Query\Parser->SelectExpression()
#3 /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(878): Doctrine\ORM\Query\Parser->SelectClause()
#4 /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(847): Doctrine\ORM\Query\Parser->SelectStatement()
#5 /usr/share/nginx/html/td/ven in /usr/share/nginx/html/td/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php on line 54

这是 Doctrine 的默认示例 https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/pagination.html

这是我的代码:

<?php
use Doctrine\ORM\Tools\Pagination\Paginator;
require "bootstrap.php";

$dql = 'SELECT * FROM reports';

$max = isset($args[1])?$args[1]:5;

$query = $entityManager->createQuery($dql)->setFirstResult(0)->setMaxResults($max);

$paginator = new Paginator($query, $fetchJoinCollection = false);

$c = count($paginator);

foreach($paginator as $report){
    echo $report->getName() . "\n";
}

【问题讨论】:

    标签: doctrine-orm pagination


    【解决方案1】:

    dql选择中没有通配符*

    改变

    $dql = 'SELECT * FROM reports';
    

    $dql = 'SELECT r FROM Model\Report r';
    

    参考文献

    【讨论】:

    • 谢谢詹尼斯。我正在研究教义 2.6.3,我会选择 php $dql = "SELECT r FROM ModelName r";
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多