0

コントローラに$idがあります。これは外部キーです。

  $query = $em->getRepository('SurgeryPatientBundle:Patients')->findPatientByUserID($id);

そして私のリポジトリファイルでは、この関数

 public function findPatientByUserID($id)
{

    return $this->getEntityManager()
        ->createQuery('SELECT p FROM SurgeryPatientBundle:Patients p WHERE p.user ='.$id.'')
        ->execute();

}

オブジェクトのインスタンスを取得したいのですが、それでも配列を取得します。find($ id)を使用したクエリは適切に機能します

編集問題は解決します、私はとても愚かです、私は$query[0]を呼び出しました

4

2 に答える 2

1

あなたも使うことができ$query->getSingleResult();ます

ここを参照してください

http://docs.doctrine-project.org/en/2.1/reference/dql-doctrine-query-language.html#query-result-formats

于 2013-01-31T01:08:21.180 に答える
0

オブジェクトを取得したい場合は、DQL を使用しないでください。Doctrine エンティティには、これを処理する検索機能があります。

そのすべてのコードの代わりに、(コントローラーで) 以下を使用できます。

$em->getRepository('SurgeryPatientBundle:Patients')->find($id);

DQL は非常に強力ですが、組み込みの find メソッドを使用したこのような単純なルックアップでは、エンティティを教義オブジェクトとして提供する方が効率的です。

于 2013-01-30T17:09:45.280 に答える