私の必要条件は、Vets and Clinicsという2つの異なるテーブルで検索することです。それらの間には関係があるかもしれません。つまり、診療所に名前をつけて「a」を、その中に「a」を持つ獣医を持ってくるべきです。獣医は診療所に関連しているかもしれないし、そうでないかもしれない。現在、私は次のことをしています。 2つのクエリを実行しないようにする方法はありますか?これはcakephpのページネーションヘルパーの使用にも役立ちますか?cakephpの複数のモデルでの単一ページ設定
$this->paginate = array(
'Vet' => array(
'conditions' => $conditions,
'fields' => array('Vet.id', 'Vet.name', 'Vet.professionnal_address', 'phone_number', 'Vet.email', 'Vet.type', 'Vet.latitude', 'Vet.longitude','Vet.city','Vet.clinic_id','Vet.zipcode'),
'joins' => array(
array(
'table' => 'vet_appointment_types',
'alias' => 'VetAppointmentType',
'type' => 'LEFT',
'conditions' => array(
'Vet.id = VetAppointmentType.vet_id',
)
)
),
'limit' => $limit,
'group' => array(
'Vet.id'
),
'order' => array(
'Vet.name' => 'ASC'
)
),
'Clinic' => array(
'conditions' => $conditions1,
'fields' => array('Clinic.*'),
'limit' => $limit,
'order' => array(
'Clinic.name' => 'ASC'
)
)
);
$results = $this->paginate('Vet');
$results2 = $this->paginate('Clinic');
私は組合を使用することができない非データベースモデルのデフォルトのページネーションの成分を拡張し、ビット複雑で組合が、データベース構造を使用してみました。また、私は一時的なテーブルベースのモデルを実装することはオプションになると思うが、それは検索に使用されるので、それを実装する方法を正確に考えると、私は考えることができない。任意のヘルプは+1されます;)
あなたは労働組合やビューを使用できない場合は、2つのテーブルの非関連したデータをページ分割するために苦労しています。私はその目的のためにElastic Searchを使用して検索インデックスを実装します。 – burzum
テーブルとテーブルの両方からデータを格納するためにテンポラリテーブルを使用するのであれば、面倒な方法でしょうか? – Sp0T
データが変更された場合は、一時表を変更する必要があります。たぶんあなたはデータベースビューを調べるべきでしょうか?ありがとう。 – MBosman