なんかちょいちょいつまづいちゃったので、書いておきます。
最終的には、下記のように書けば、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になってしまい、シングルクォートがついてしまい、本日のデータを取得できません。![[sad]](https://i1.wp.com/oc-technote.com/wp-content/themes/oc/assets/images/face/sad.png?w=525&ssl=1)
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
