0

symfony で doctrine を使ってこのクエリのような sth を作りたいです。

SELECT * FROM view_of_model1 LEFT JOIN model2 ON model1.id = model2.model1_id

生のSQLでは問題ありませんが、 と のモデルと接続する必要がmodel1ありmodel2ます。view_of_model1model1 テーブルと同じフィールドを持つパースペクティブです。

あなたはなにか考えはありますか?

編集:私は持っていますtable1

id | col_datetime1 | col_datetime2 | some_col
---------------------------------------------

そして、日時の列で並べ替えたいと思います。some_col = trueで並べ替えたい場合と、で並べ替えたいcol_datetime1場合。さらに、別のテーブルに参加したい (例) 。で接続されたセクションのサブクエリで実行できます。ビューを作成することによっても実行できます。しかし、それを symfony モデルにマップする方法は?some_col = falsecol_datetime2table2on table1.id = table2.table1_idfromUNION

EDIT2: NativeQuery は役に立ちますか?

4

1 に答える 1

-1

あなたが望むのは物事を簡単にすることだけなので、ビューはあなたのケースでは付加価値のない単なる複雑なものだと思います。

結合を毎回記述することなく、必要なデータをより簡単に取得したい場合は、ここに示すように、クエリを実行する Table クラスにメソッドを作成します。
データベース クエリはコントローラーで記述されることは想定されていないため、このメソッドを何度も使用しない場合でも、これは良い方法です。

例:

class MyTable extends Doctrine_Table
{
  public function getMyStuff($value)
  {
    return $this->createQuery('m')
      ->where('m.my_column = ?', $value)
      ->execute();
  }
}
于 2012-05-24T22:00:30.737 に答える