CakePHP'de Ben bir alanla ilgili koşulları ile bir find nasıl yapabilirim?

2 Cevap php

Ben ve bir kaç farklı modeller aittir, ben bu modeli (Openhouses) alakalı bu modelin tüm bir durum var bulmak istiyorum bir model (Listeler) var. 'Vardır ve ait' model dosyalarında kurulum vardır. Listings hasMany Openhouses ve Openhouses Listeleri aittir. (Ve listeleri ben verileri istediğiniz birkaç diğer modellerinde için birçok ve blongs vardır.)

Ben çalışıyorum.

$this->Listing->find('all', 
array('conditions' => 
array('Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s'))
));

ama boşuna.

Error: 1054: Unknown column 'Openhouse.date' in 'where clause

Ben Openhouse model üzerinde arama ve ilgili Kayıtları olsun ama sonra veriler farklı bir formatta döndürülür biliyorum ve benim diğer modellerden veri almak için özyineleme önünü açmak gerekir. (Ve ben yinelenen Openhouse verilerle sonuna kadar!). Gerekirse ben biraz daha kod örnekleri gönderebilirsiniz.

Benim soru temelde sadece Openhouse modeli sorgulamak ve onunla yaşamak gerekir veya yanlış ilgili modellerde şart koyarak benim sözdizimi nedir?

2 Cevap

Bu deneyin:

$this->List->find('all', array(
    'contain' => array(
        'Openhouse.conditions' => array(
            'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
            'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s'))
        )
    )
)

Eğer bağlantılı model bir sürü varsa, 2 özyinelemeli isteyebileceğiniz daha fazla veri getirebilir ayarları.

Eğer bu doğruysa, mavarro söylediklerini bir alternatif olduğunu, ayrıca kullanarak deneyebilirsiniz Containable behaviour:

$this->Listing->find
(
    'all', 
    array
    (
        'conditions' => array
        (
            'Openhouse.date >' => $openhouse_start->format('Y-m-d H:i:s'),
            'Openhouse.date <' => $openhouse_end->format('Y-m-d H:i:s')
        ),
        'contain' => array('Openhouse')
    )
);