在那里我使用以下doctrine命令来检索人物对象集合
//query
$people = $q->execute();
这返回20个对象。 person对象的主键是具有三个属性的复合键。那些是
id
department_id
name
我需要通过如下搜索来获取人物对象。
$id = 10;
$department_id = 1;
$name = "abc";
$people->get($id, $department_id, $name);
但这不起作用,也没有给出正确的结果。我尝试了这个,它给出了null结果,似乎我的集合主键没有设置。
$people->getKeyColumn();
我不想在收集中经历foreach循环并处理它,因为当我处理大约500个人时,它会减慢我的应用程序。
有人可以帮助我解决这个问题,从教义集合中获取值。
答案 0 :(得分:1)
你能用这样的东西吗?
$people = Doctrine::getTable('Persons')
->createQuery()
->where('id = ? AND department_id = ? AND name = ?', array($id, $department_id, $name))
->execute();
它将为您提供已根据提供的参数进行过滤的DoctrineCollection。
'Persons'这里是一个Doctrine模型名,而不是mySQL的表名。
答案 1 :(得分:0)
你也可以使用Doctrine的魔术探测器findBy*()
:
$people = Doctrine_Core::getTable('Persons')
->findByIdAndDepartmentIdAndName($id, $department_id, $name);