php - 在 Doctrine 中查找示例

标签 php orm doctrine

Doctrine 中是否有类似HibernatefindByExample 方法的方法?

谢谢

最佳答案

您可以使用 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/

相关文章:

php - PHP include 或 require 类与原始编写的类有什么区别?

java - 如何在 Java 中列出 Sqlite3 数据库中的表名

java - JPA 命名约定

php - Doctrine 只选择第一行数据,无论如何

php - 转换为 md5 在 php 中是错误的

php - 在 PHP 中显示 12 个月的数据

python - 映射属性的基础查询

entity-framework - 为什么 Entity Framework 将实体生成为部分类?

mysql - Doctrine 交响曲

php - 更新 doctrine 中的文本字段会产生异常