回答
可以使用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
也可以是一个接口,您的具体实体将不得不再次实现toArray
方法。
要使您的所有存储库都可用,请确保您正在扩展基本存储库类 - 在本例中为MyRepository
。
P.S我假设你正在谈论主义2.X
是的。
比方说,你有一个名为用户的模型。您有以下两类
abstract class Base_User extends Doctrine_Record
{
//define table, columns, etc
}
class User extends Base_User
{
}
在一些其他的对象,你可以做
$user = new User;
//This will return a Doctrine Collection of all users with first name = Travis
$user->getTable()->findByFirstName("Travis");
//The above code is actually an alias for this function call
$user->getTable()->findBy("first_name", "Travis");
//This will return a Doctrine Record for the user with id = 24
$user->getTable()->find(24);
//This will return a Doctrine Collection for all users with name=Raphael and
//type = developer
$user->getTable()
->findByDql("User.name= ? AND User.type = ?", array("Raphael", "developer"));
谢谢回答特拉维斯,但它不是什么即时寻找。我想要做这样的事情: $ user = new User; $ user-> name =“rafael”; $ user-> category =“developer”; $ q = Doctrine :: getTable('User') - > findByExample($ user); 和$ q应返回“rafael”作为名称和“developer”作为类别的用户集合。你知道如何做到这一点? – rizidoro 2010-01-13 18:56:29
检查使用findByDql方法的最后一段代码。这应该让你找到你想要的。 – Travis 2010-01-14 02:52:46
$users = $userTable->findByIsAdminAndIsModeratorOrIsSuperAdmin(true, true, true);
见http://www.doctrine-project.org/projects/orm/1.2/docs/manual/dql-doctrine-query-language/en
- 1. 学说findBy *方法和读取数组
- 2. 使用PHPDriver的学说映射示例
- 3. 使用派生物对象的学说findBy/getBy魔术方法?
- 4. 等效findBy和fetchOne从学说中行走
- 5. 学说2 findby功能,得到键和值
- 6. 学说2.0 findBy * - 当列包含不工作强调
- 7. Symfony2的学说例外
- 8. 学说 - 不在
- 9. 学说加载模块例外
- 10. 学说
- 11. 在PHP或学说
- 12. 学说2.1 - 在DateTimeType
- 13. Symfony 1.4,学说(学说:: HYDRATE_ARRAY非复数)
- 14. dev.android.com的JetBoy示例说明?
- 15. 学说2.1其中外键id = ?,编辑:固定在学说2.2
- 16. 学说---搜索
- 17. 学说与mamp?
- 18. 与学说ORM
- 19. 学说问题?
- 20. 与学说
- 21. 学说与MAX()
- 22. 学说滤波
- 23. 理解学说
- 24. 与学说1.2
- 25. 学说queryBuilder setParamater
- 26. 学说+ ZF + phpunit
- 27. 学说2.0 Bootstrap?
- 28. ?在学说查询手段?
- 29. AND条件在学说
- 30. apache数学优化示例
我不是在谈论Doctrine2(我在2010年末提出问题),但现在,它解决了这个问题。 – rizidoro 2012-05-07 18:23:17