3

したがって、次のサンプルテーブルがあります。

Table A:
id
name
type
hat_size
created

Table B:
id
name
type
favorite_food
created

Table C:
id
name
type
some_other_thing
created

Aモデル、B、および、、、およびCを使用した結果で検索を作成したいとしましょう。idnametypecreated

created私の目標は、3 つのテーブルすべてを検索し、フィールドの 1 つ (フィールドとして使用しましょうORDER_BY) で並べ替え、20 件の結果に制限することです。

通常、私は単純にこれらを結合し、フィールドごとに並べ替えLIMIT、結果を表示します。

今、私はこれを行うために生のクエリを作成できることを知っています...しかし、それは、ページネーションメソッドを書き直したり、常にサニタイズしたりする必要があることを意味します。可能であれば、モデル自体を使用して、より MVC に適した方法でこれを行うことをお勧めします。

CakePHP でこれにアプローチできる最善の方法は何ですか?

ありがとう、ジェームズ

4

1 に答える 1

1

1つのオプションは、クエリVIEWを保持するを作成することです。UNION次に、ビューでCakeクエリを実行します。

ただし、最近、ビューをサーバー間で転送するのが難しいため(および、DEFINER通常はエクスポートに含まれる煩わしいコマンド)、ビューを避け始めています。

于 2012-05-16T00:12:00.370 に答える