0
工作,我有一个功能,下面的代码在我的控制器之一:主义查询生成器不使用CodeIgniter
$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库文件中?我不这么认为。
我发现的另一个奇怪的事情是,如果我试图通过getRepository
方法检索条目,它会将DQL语句打印出来输出页面,因为在该方法中由于某种原因本身打印出DQL语句。我不会把它的结果打印出来。
任何想法这里发生了什么?我的用户类非常简单。不幸的是,我不知道有什么问题,因为没有错误报告。 D:
<?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;
}
?>
我也看看文档,但我不认为这是正确的代码。不应该是'$ qb-> getQuery() - > getResult()'? (这仍然导致我得到HTTP 500服务器错误,虽然) 此外,尝试您的线路不起作用。当我有'$ users = $ query-> getQuery() - > getResult();'uncommented时,我仍然收到HTTP 500服务器错误。 – celestialorb 2013-02-14 17:05:40
这与您使用'$ qb'分配'$ query'的原因相同。 尝试:'$ qb-> select('u.username,u.password,u.level')',如果它工作的话我会回答我的答案 – Pierrickouw 2013-02-14 17:16:15
这很有效!谢谢!我还发现它打印出DQL是因为我在Doctrine的配置中有一个EchoSQLLogger设置。 – celestialorb 2013-02-14 17:24:35