我正在使用 Propel 1.6,但我不确定如何从 propel 对象集合中获取对象(给定其“id”属性值)。我在 Propel 的文档中找不到直接的答案(PropelCollection 方法似乎不适用?)。例如:假设我有一个具有以下架构的“Person”表:
<table name="person">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
<column name="name" type="VARCHAR" size="100" required="true"/>
</table>
我执行以下查询以获取“Person”对象的集合:
$persons = PersonQuery::create()->find();
然后,我想找到一个具有给定“id”的“Person”对象(例如“id=3”的“Person”),而不需要对数据库进行新的查询。我该怎么做?
$persons->get(...?)?
换句话说,我不想这样做:
$personX = PersonQuery::create()->findOneById(3);
语境:
我想阻止进行数据库查询以提高性能。该语句将插入到 foreach 语句中,否则会导致大量数据库连接,如下所示:
foreach ($books as $book) {
$book['author_name'] = PersonQuery::create()->findOneById($book['author_id'])->getName();
}