2

Doctrine2を初めて使用します。エンティティまたはリポジトリでカスタム関数を作成するのに最適な場所はどこですか?ユーザーエンティティがあり、彼の年齢を取得したいとします。

関数getAgeをエンティティに入れると、非常に簡単です。ただし、関数getAgeをリポジトリに配置した場合、そのユーザーの年齢を取得するにはuserIdを渡す必要があります。私が間違っている?それを達成するための最良のアプローチは何ですか?

4

2 に答える 2

6

通常、エンティティを操作するときは、エンティティ自体のエンティティに関するすべてのデータと操作を保持する必要がありますが、リポジトリは、で始まる正しいエンティティをフェッチするためにのみ使用されます。

例として、単一のエンティティ内のデータgetAge()setAge()返す/操作するため、エンティティ自体に移動する必要がgetUsersByAge()ありますが、特定の年齢のすべてのユーザーを特定する理論はリポジトリに移動します。

于 2012-07-08T05:50:44.257 に答える
0

お役に立てば幸いです

$em = Zend_Registry::getInstance ()->entitymanager;
$user = $em->getRepository('Model_User')->findOneBy(array( 'user_id' => $userID,
        ));
$user->getAge();
于 2012-07-09T16:34:29.977 に答える