hasMany のテーブルデータを、条件指定で1レコードのみ hasOne で取ってきたい。 例えば、次のような機能があるとする。 記事が投稿できる。 記事は即公開もできるし、公開予定日時も指定できる。 公開予定日時が存在する時はそれをもとに記事が公開される、という感じ。 公開予約日時は記事に紐づけて登録する。 記事の一覧画面では、登録されている記事の情報とともに、公開予約されている場合は、それも一覧に表示したい。 記事のID,タイトル等でソートできるのと同様、公開予約日時でもソートできるようにしたい。 環境や仕様 CakePHP v3.2.13 DBテーブル hasOneへの道 まずは、普通に hasMany 指定 hasManyの時の、CakePHPの動き hasOne指定したい hasOne 設定を弄り倒す 最後に、 paginate のソート設定 > sortWhitelist に