我一直在关注这几行代码,如食谱Here
所示$query = $articles->find('all', [
'conditions' => ['Articles.created >' => new DateTime('-10 days')],
'contain' => ['Authors', 'Comments'],
'limit' => 10
]);
就我而言,代码是:
$samples_data = $samples->find('all', [
'conditions' => ['Samples.created >' => new DateTime('-10 days')],
'contain' => ['Users', 'Tests'],
'limit' => 10
]);
foreach ($samples_data as $data) {
debug($data);
}
但是我收到了这个错误:
注意:我的数据库中创建的列的类型为“ datetime ”
任何帮助都将不胜感激。
答案 0 :(得分:4)
你的代码看起来不错,除了一件事 -
新的DateTime(' -10天')将返回对象http://php.net/manual/en/datetime.construct.php,而不是字符串 这里需要做一些改变。
$query = $articles->find('all', [
'conditions' => ['Articles.created >' => new DateTime('-10 days')->format('Y-m-d H:i:s')],
'contain' => ['Authors', 'Comments'],
'limit' => 10
]);
$samples_data = $samples->find('all', [
'conditions' => ['Samples.created >' => new DateTime('-10 days')->format('Y-m-d H:i:s')],
'contain' => ['Users', 'Tests'],
'limit' => 10
]);
foreach ($samples_data as $data) {
debug($data);
}
此代码段可能适用于您的情况。
答案 1 :(得分:0)
@abhishek是对的。您尝试将对象设置为字符串。如果你想绕过cakephp的方式,你可以使用纯PHP的方式,将创建的值更改为:
Date('Y-m-d H:i:s', strtotime(-10 days))