0

我的一个控制器的函数中有以下代码:

$qb = $this->doctrine->em->createQueryBuilder();
$query = $qb->select('username, password, level')
    ->from('User', 'u');
        // ->where('user.username = :username')
        // ->setParameter('username', 'userTest');
$users = $query->getResult();

这会导致某些事情默默地失败。没有错误消息,我从页面得到的唯一信息是 500 服务器错误。如果我注释掉$users = $query->getResult()页面加载的行就好了,所以查询生成器似乎在这里不起作用。我不知道为什么。我需要以某种方式将它加载到我的 Doctrine.php 库文件中吗?我不这么认为。

我发现的另一件奇怪的事情是,如果我尝试通过将getRepositoryDQL 语句打印到页面输出的方法来检索条目,就像该方法本身出于某种原因打印出 DQL 语句一样。我不会把它的结果打印出来。

知道这里发生了什么吗?我的用户类非常简单。不幸的是,我不知道出了什么问题,因为没有报告错误。丁:

<?php
namespace Entities;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class User {
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    private $id;

    /**
     * @ORM\Column(type="string")
     */
    private $username;

    /**
     * @ORM\Column(type="string")
     */
    private $password;

    /**
     * @ORM\Column(type="integer")
     */
    private $level;

    /**
     * @ORM\OneToMany(targetEntity="EmailAddress", mappedBy="user")
     */
    private $emails;
}

?>
4

1 回答 1

2

你漏了一步!

查看学说文档

尝试 :$users = $query->getQuery()->getResult();

并改变:$qb->select('u.username, u.password, u.level')

于 2013-02-14T08:55:27.110 回答