CakePHPとトリッキーなページネーション

CakePHPで最も苦痛のある場所は、ページネーションです。 特にトリックに関しては。 Banal-> find( 'all')は常にうまく(ほとんど常に)うまく機能しますが、ページネーション...

与えられた:


  1. 示された価格(Immovable.price)と通貨タイプ(Immovable.currency_id)の不動産(Immovable)のタブレットがあります。
  2. 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でテストしました。 私は誰かがこのスレッドを助けることを願っています:)



All Articles