なんかちょいちょいつまづいちゃったので、書いておきます。
最終的には、下記のように書けば、Offers.delivery_dateが本日のデータを取得できます。
$query = $this->Offers->find()->contain(['Deliveries']) ->where(['Offers.winner_id' => $user_id, 'Offers.delivery_date' => new \DateTime('today')]) ->limit(50);
しかし、最初は下記のようにやってたんですよ。
$query = $this->Offers->find()->contain(['Deliveries']) ->where(['Offers.winner_id' => $user_id, 'Offers.delivery_date > ' => DATE_SUB(NOW(), INTERVAL 1 DAY)]) ->limit(50);
しかし、これだと、下記のようなSQLになってしまい、シングルクォートがついてしまい、本日のデータを取得できません。
SELECT Offers.* FROM offers Offers WHERE ( Offers.winner_id = '99' AND Offers.delivery_date > ' DATE_SUB(NOW(), INTERVAL 1 DAY)' ) LIMIT 50
また、最初の例だと、普通は
'Offers.delivery_date' => new DateTime('today')
だと思うんですが、それだと下記のエラーが出ます。
Class 'App\Controller\Component\DateTime' not found
http://stackoverflow.com/questions/29500225/cakephp3-class-datetime-not-found