2012-10-18 5 views
25

私は2つのエンティティUserとPersonを持っています。Symfony2:永続オブジェクトのIDを取得

エンティティのユーザーでは、関連する人物のID:user_idが必要です。

私は新しいユーザーを作成するときに、最初にそのユーザーとそのユーザーを作成する必要があります。 ユーザでは、対応する人物のIDを入れなければなりません。そのためには、自動インクリメントの永続オブジェクトpersonのIDを取得する必要があります。

$em->persist($person); 
$em->flush(); 

そして、私はこれをどのように行うことができます。

それは後のオブジェクトのIDを取得することはできますか?

代わりに、最も大きなIDをテーブルPersonから検索し、これを取ることですが、永続化されたオブジェクトのIDを取得するためのより簡単で簡単な方法があるはずです。私はそのようなIDを取得しています

$articleID = $_DB->queryRaw((....); 

を実行例えばPHPで

、。

答えて

39

Symfony2 with Doctrineデフォルトでは、ORMはデータベースに格納されたデータの後に自動的にIDを生成します。だからあなたはIDで電話することができます->getId()

$id = $person->getId(); 
+0

ありがとう@HHabibillah、これは動作します。唯一のこと:PHPにはvarはなく、$ id = $ person-> getId()のみです。 これを編集できれば、私はあなたの答えを受け入れます。 –

+0

訂正ありがとうございます。私は正しい構文になるように編集しています。 – Habibillah

+2

ありがとう、私は1時間で答えを受け入れる、私は今すぐ打ち切りを持っている。 –