Select * from tableName order by id desc limit 10
如何通过演示执行类似上述的内容?
答案 0 :(得分:2)
在模型的Table类中(例如tableNameTable.class.php):
function getResults()
{
$results = self::createQuery("q")
->select("q.*")
->orderBy("q.id DESC")
->limit(10)
->execute();
return $results;
}
会给你一个Doctrine的结果集。
答案 1 :(得分:0)
根据我的经验,大多数人不会编写特定的表类,而是通过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);
}
}