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 に答える