2016-04-20 4 views
0

を働いていないデータをロードするファインダを使用してHereCakephp3料理で示したように、私は、コードのこれらのいくつかの線に沿って、次のしてきた

$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); 
    } 

しかし、私はこのエラーを取得しています:

enter image description here

注:クレアを私のデータベースのted列は "datetime"

のいずれかのヘルプがあります。

新しい日時(「 - - 10日」)ではなく、文字列 ここで必要少しの変化よりも、オブジェクトhttp://php.net/manual/en/datetime.construct.phpを返すことになる

答えて

4

あなたのコードは、ここに一つのことを除いて、[OK]を探します。

$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); 
    } 

このコードスニペットは、あなたのケースでは動作する可能性があります。

+0

これは私にエラーを与えました:新しいDateTime( ' - 10日') - > format(' Ymd H:i:s ') なので、$ date = new DateTime(' - 10 days '); $ date = $ date-> format( 'Y-m-d H:i:s'); ['Samples.created> => $ date] –

0

@ abhishekが正しい。オブジェクトを文字列として設定しようとしています。 cakephpの方法をバイパスしたい場合は、作成した値を変更する純粋なPHPの方法を使用することができます:

Date('Y-m-d H:i:s', strtotime(-10 days)) 
+0

なぜ私のサンプルは作成されていません。私のデータベースのdatetime。 –

関連する問題