1

4 用于我的 Doctrine 应用程序。

在那里我使用以下教义命令来检索人员对象集合

//query
$people = $q->execute();

这将返回 20 个对象。person 对象的主键是具有三个属性的复合键。那些是

id
department_id
name

我需要通过如下搜索来获取人员对象。

$id = 10;
$department_id = 1;
$name = "abc";

$people->get($id, $department_id, $name);

但这不起作用,也没有给出正确的结果。我试过这个,它给出了空结果,似乎我的集合主键没有设置。

$people->getKeyColumn();

我不想在收集和处理它时经历一个 foreach 循环,因为当我处理大约 500 人时,它会减慢我的应用程序。

有人可以帮我解决这个问题,从教义集合中获取值。

4

2 回答 2

1

你能用这样的东西吗?

  $people = Doctrine::getTable('Persons')
    ->createQuery()
    ->where('id = ? AND department_id = ? AND name = ?', array($id, $department_id, $name))
    ->execute();

它将为您提供已通过提供的参数过滤的 DoctrineCollection。

这里的“Persons”是一个 Doctrine 模型名称,而不是来自 mySQL 的表名。

于 2013-03-08T09:13:14.417 回答
0

你也可以使用 Doctrine 的魔法查找器findBy*()

$people = Doctrine_Core::getTable('Persons')
    ->findByIdAndDepartmentIdAndName($id, $department_id, $name);
于 2013-03-14T10:07:08.343 回答