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