从 Silex 中的模型 Class 访问实体管理器

Accessing Entity Manager from Model Class in Silex

我将 Silex 用于简单网站。 我使用 Doctrine DBAL 和那个项目 https://github.com/dflydev/dflydev-doctrine-orm-service-provider 作为 ORM 和实体管理器。 我知道如何从控制器访问该管理器,但我想知道如何从模型 class 访问该管理器。 例如我们有

class UserModel {

public function getPhones() {

????????

}

}

我不知道如何从模型 class 访问 EntityManager 来查找用户电话。

谢谢指教

你不应该。

相反,您应该设置您的实体,以便您的用户与其手机建立关联,如下所示:

/** @Entity */
class User
{
    /**
     * @OneToMany(targetEntity="Phone")
     */
    private $phones;
    // ...

    public function __construct() {
        $this->phones = new ArrayCollection();
    }
}

和必要的 getters/setters。在此之后,您的实体中将不需要实体管理器。