2

私は本のすべてのステップを実行しましたが、エンティティのカスタムリポジトリを操作することができません。

たとえば、ユーザーエンティティは次のとおりです。

/**
 * @ORM\Table("fos_user")
 * @ORM\Entity(repositoryClass="XXX\UserBundle\Repository\UserRepository")
 */
class User extends BaseUser implements ParticipantInterface
{
}

そしてそれはリポジトリクラスです:

namespace XXX\UserBundle\Repository;

use Doctrine\ORM\EntityRepository;

/**
 * UserRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class UserRepository extends EntityRepository
{

    public function initializeUser()
    {
        //some logic
    }

}

しかし、$ user-> initializeUser();を呼び出すと 致命的なエラーが発生します:未定義のメソッドXXX \ UserBundle \ Entity \ User :: initializeUser()を呼び出すと、エンティティクラスで宣言したにもかかわらず、カスタムリポジトリが認識されないことは明らかです。何か案は?

4

1 に答える 1

5

カスタムリポジトリは、エンティティオブジェクトにメソッドを追加しません。

$emエンティティマネージャを使用してカスタムメソッドを呼び出すには、次の手順に従います。

$em->getRepository('UserBundle:User')->initializeUser(),
于 2012-05-14T08:46:04.160 に答える