回答
可以使用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