2012-03-11 6 views
0

Doctrine 2を使用してエンティティを管理し、Zend_Authを使用して承認を管理しています。私は特定の詳細にアクセスできるように、私は簡単にこれはすべて正常に動作しているDoctrine 2/ZFのクエリから選択した列を返します

$storage = $auth->getStorage(); 
$storage->write($user); 

を私が正常に認可

$user = $this->em->getRepository('Entities\User')->findOneByUsername($username)); 

を使用して、ユーザーの完全な詳細を取得し、ユーザーを保存することができますが、私はZend_Authストレージに完全なユーザーの詳細を格納することに懸念しています。

私の考えは、findOneByUsername(パスワードやその他の結果を削除する)によって返される列を制限することでした。 Doctrineのドキュメントを読むと、これは可能ではないようです。私はqueryBuilderも見てきましたが(そして適切なクエリを作成することもできます)、もう一度SELECTだけしかできないようです。

クエリの結果をいくつかの列に限定する最良の方法は何ですか?

答えて

1

セッションにユーザーオブジェクトを格納するのは良い方法ではありません。必要であれば、ユーザーIDを格納してデータベースを照会し、ユーザー・オブジェクトをインスタンス変数に保管するだけです。多くの例がありますhereカスタム選択を書く方法。 $query->getResult()によって返される型はselectステートメントに依存することに注意してください。すべてのフィールドを選択しないと、配列が返されます。

+0

マニュアルに直接ご連絡いただきありがとうございます。何らかの理由で、私のGoogleはDoctrineのマニュアルに多くのページを投げ捨てています。あなたの助けに感謝! – C4PO

関連する問題