与えられた:
- 示された価格(Immovable.price)と通貨タイプ(Immovable.currency_id)の不動産(Immovable)のタブレットがあります。
- id、name、coeff(係数)のフィールドを持つ通貨ラベル(通貨)があります
したがって、通貨テーブルには、係数EUR coeff = 1.34、通貨Euro coeff = 1.34があります。
チャレンジ:
通貨を含む価格で発行(ページ分割)を並べ替えます。 つまり 100,000ユーロの家は110,000ドルの家よりも高価です(1〜1.34のレート)
解決策
$this->paginate = array('order' => array('Count' => 'ASC'),
'fields' => array('*','((`Immovable`.`price`*`Currency`.`coeff`)) as Count'));
はい、二重括弧で囲まれています。 次に、LEFT JOINを通貨に設定し、計算フィールドで正しい並べ替えを行うことで、リクエストが正しくなります。
はい、他のデータベースで作業できなかったため、MySQLでテストしました。 私は誰かがこのスレッドを助けることを願っています:)