簡體   English   中英

Symfony3學說查詢生成器

[英]Symfony3 Doctrine querybuilder

我正在使用Doctrine ORM編寫Symfony3應用程序。

我有一個實體,其中包含我的所有屬性以及其設置方法和獲取方法。

嘗試構建以便我可以根據電子郵件地址檢索行。

my query:

      /**
     * @param $email
     */
    public function getUserByEmail($email)
{
    $repository = $this->db->EntityManagerORM()
        ->getRepository('TestBundle:User');

    $query = $repository->createQueryBuilder('t')
        ->where('t.emial = :email')
        ->setParameter(':email', $email)
        ->getQuery();

    $test = $query->getResult();

    var_dump($test);
  1. $ this-> db是EntityManager,它是一項服務,在我的__construct中實例化。 所以我要做的就是檢索實體,他們創建了一個queryBuilder,我想在其中檢索電子郵件==到給定電子郵件的整行。

    我得到的回應:

     "Notice: Undefined index: [Semantical Error] line 0, col 63 near 'emial 

    =:ema':錯誤:類Test \\ TestBundle \\ Entity \\ User沒有字段或

    名為emial的協會”

我的代碼中有任何可疑的...。

setParameter函數中不需要:

代碼中的另一件事是,User表沒有名稱為emial列。 仔細檢查並用適當的名稱替換。

因此,您的查詢將如下所示:

$query = $repository->createQueryBuilder('t')
        ->where('t.RIGHT_COLUMN_NAME = :email')
        ->setParameter('email', $email)
        ->getQuery();

在上面的代碼中,將RIGHT_COLUMN_NAME替換為正確的列名。

這是電子郵件的拼寫。 更改為此:

$query = $repository->createQueryBuilder('t')
      ->where('t.email = :email')
      ->setParameter(':email', $email)
      ->getQuery();

那應該解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM