2015-04-23 30 views

回答

1

您需要使用findOneBy(array)通過電子郵件

$em = $this->getDoctrine()->getRepository('HomeBundle:user') 
    ->findOneBy(array('email' = >$email)); 
+1

它的工作..謝謝:) –

+0

該死的我還要更快@M哈立德·朱奈德得到公認的答案:( – Enjoyted

2

爲什麼不使用findOneBy?

$user = $this->getDoctrine() 
->getRepository('HomeBundle:user') 
->findBy(array('email' => $email)); 
+0

它的工作..謝謝:) –

1

簡單查詢(基本上WHERE column = value)找到單個記錄,你可以使用findByfindOneBy

$em = $this->getDoctrine()->getManager(); 
$entity = $em->getRepository('HomeBundle:user') 
      ->findOneBy(array("email"=>$email),array()); 
$entities = $em->getRepository('HomeBundle:user') 
       ->findBy(array("email"=>$email), array()); 

如果您需要更復雜的(如>=或連接),你可以使用query builderdql

但是您應該創建一個Custom Repository並將您的查詢放在那裏,以使它們可重用,並保持您的控制器纖細。

這包括以下四個步驟:

  • 創建延伸EntityRepository
  • 在實體配置將您的資料庫(註釋,YAML或XML)
  • 寫作命名空間HomeBundle /實體UserRepository類使用dql或查詢構建器的存儲庫功能。
  • 調用庫函數,而不是findOneBy
+0

它的工作。 。 謝謝 :) –

相關問題