2017-04-24 9 views
0

を取得し、私はこのようにDQLを得た:Doctrineは結果の問題

$sql =$qb->select('c') 
->from('Cusomter','c') 
->where('c.login = :login') 
->setParameter('login',$login); 
$rs = $sql->getQuery()->getResult(Query::HYDRATE_OBJECT); 

しかし、私は

Fatal error: Class 'customer\Query' not found in MyNameSpace\customer.php

iは任意の名前空間を使用する必要があります、次のエラーを得ましたか。
ありがとうございます。

答えて

1

あなたが実際に、hydrate_objectにそのデフォルトの動作をgetResultを伝える必要があり、そのための方法自体から呼び出さいけません。

試してみてください。

$rs = $sql->getQuery()->getResult(); 

あなたはそのかかわらず、一定のための右の名前空間をお知りになりたい場合は:

Doctrine\ORM\AbstractQuery::HYDRATE_OBJECT 
+0

が、私は 'ユーザ名を選択すると、id'だけ、それはオブジェクトを返しますがありませんアレイ。とにかく私はそれをすることができますか? – Hanata

+0

あなたはオブジェクトを要求しました。代わりにDoctrine \ ORM \ AbstractQuery :: HYDRATE_ARRAYを使用してください – DevDonkey

+0

申し訳ありません。私はそれが 'login、id'のために質問するとき、それは配列として結果を返しますがオブジェクトではないことを意味していました。私の間違いをおかけして申し訳ありません。 – Hanata

1

試してみてください。

use Doctrine\ORM\Query; 

または

\Doctrine\ORM\Query::HYDRATE_ARRAY