在symfony 1.4中按排序顺序检索相关表数据

时间:2013-04-17 15:41:54

标签: php doctrine foreign-keys symfony-1.4

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

indexSuccess:

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

我想做点什么

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

但这不正确。我是否必须先采取行动?

操作

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

tableClass

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

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

1 个答案:

答案 0 :(得分:3)

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

例如:

<强> indexSuccess:

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