如何用教条执行简单的SELECT?

问题描述 投票:0回答:2
Select * from tableName order by id desc limit 10

如何通过演示来执行类似上述的操作?

php doctrine
2个回答
2
投票

模型的 Table 类内部(例如 tableNameTable.class.php):

function getResults()
{
  $results = self::createQuery("q")
    ->select("q.*")
    ->orderBy("q.id DESC")
    ->limit(10)
    ->execute();

  return $results;
}

会给你一个结果的学说集合。


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);
   }

}
© www.soinside.com 2019 - 2024. All rights reserved.