Doctrine 中是否有类似Hibernate 的findByExample
方法的方法?
谢谢
最佳答案
您可以使用 findBy
方法,该方法是继承的并且存在于所有存储库中。
例子:
$criteria = array('name' => 'someValue', 'status' => 'enabled');
$result = $em->getRepository('SomeEntity')->findBy($criteria);
您可以使用如下定义在您的一个存储库中创建 findByExample
方法:
class MyRepository extends Doctrine\ORM\EntityRepository {
public function findByExample(MyEntity $entity) {
return $this->findBy($entity->toArray());
}
}
为了使其工作,您必须为实体创建自己的基类,实现 toArray
方法。
MyEntity
也可以是一个接口(interface),您的特定实体必须再次实现 toArray
方法。
要使它在您的所有存储库中可用,请确保您正在扩展基本存储库类 - 在本例中为 MyRepository
类。
P.S 我假设您在谈论Doctrine 2.x
关于php - 在 Doctrine 中查找示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056884/