0

我有一个名为 sort_order 的列的相对表。当我从关联表中检索值时,我希望它们按此列而不是 id 排序。

索引成功:

<?php foreach ($videos as $video): ?>
    <?php $videoAssets = $video->getVideoHubAssets(); ?>
...

我想做类似的事情

<?php $videoAssets = $video->getVideoHubAssets()->orderBy("sort_order ASC"); ?>

但这不正确。我必须先在行动中解决这个问题吗?

行动

$this->videos = Doctrine::getTable('videosHub')->getAllVideos();

表类

public function getAllVideos(){
  return $this->createQuery()->setPublishStatus()->orderBy('featured DESC, title')->execute();
  }

操作查询是从与资产表有关系的单独表中提取的。这样做的正确方法是什么?

4

1 回答 1

3

您可以为您的视频类创建一个新方法。

例如 :

索引成功:

<?php foreach ($videos as $video): ?>
    <?php $videoAssets = $video->getOrderedVideoHubAssets(); ?>
...

班级

public function getOrderedVideoHubAssets(){
    return Doctrine_Core::getTable('VideoHubAsset')->createQuery('a')
           ->leftJoin('a.Video v')
           ->where('a.video_id = ?', $this->getId())
           ->orderBy('a.sort_order ASC')
           ->execute();
}
于 2013-04-18T08:57:50.613 回答