Select * from tableName order by id desc limit 10
如何通过演示来执行类似上述的操作?
模型的 Table 类内部(例如 tableNameTable.class.php):
function getResults()
{
$results = self::createQuery("q")
->select("q.*")
->orderBy("q.id DESC")
->limit(10)
->execute();
return $results;
}
会给你一个结果的学说集合。
根据我的经验,大多数人不会编写特定的表类,而是通过 CLI 工具使用自动生成的 Doctrine_Record 类。
如果这是你的情况,你可以做类似的事情
//instantiate your record class
$model = new TableName();
$model->getTable() //returns an instance of Doctrine_Table for current Doctrine_Record
->createQuery() //returns a Doctrine_Query instance with the current table loaded
->orderBy("id DESC")
->limit(10)
->execute();
如果您发现总是按 ID DESC 对所有结果进行排序并将所有查询限制为 10 个,您还可以在 Doctrine Record 类中添加一个钩子,如下所示
class TableName extends Base_TableName //most Doctrine Records extend a base record with config info
{
//this hook will order all by id and limit all queries to 10
public function preDqlSelect(Doctrine_Event $event)
{
$event->getQuery()
->addOrderBy("id DESC")
->limit(10);
}
}