3 dernek Erişme

1 Cevap php

I have following models: - Agenda (id, user_id, event_id) -> belongsto Event, User - Event (id, etc) -> hasmany Agenda - User (id, city_id, etc) -> hasmany Agenda, belongsto City - City (id, name) -> hasmany User

Gündemleri kontrolör iken, ben onun gündemleri belirli bir event_id sahip bir kullanıcı City.name görüntülemek istiyorum. Nasıl Gündemleri dizinin Kullanıcı diziye Şehir veri ekleyebilirsiniz?

N.B. Ben bu diziye çok veri yolu yükler nedeniyle ardışık 2 kullanmak istemiyorum.

1 Cevap

En iyi seçenek CakePHP Containable Davranış http://book.cakephp.org/view/474/Containable olarak görünüyor

Bu döndürülen ilişkili model verileri sınırlamak için izin verir - bu temelde derin bir ilişki verileri bulmak mümkün olan özyinelemeli 2 gücü vardır, ama çok daha iyi performansa sahiptir ve bu size sadece ihtiyacınız olan verileri verir çünkü temizleyicidir.

Aşağıdaki kodu gibi bir şey event_id durumu dahil, kullanıcı verileri içinde Şehir verileri dönmelidir.

$this->Agenda->find('all', array(
    'contain' => array(
        'User' => array(
            'City'
        ),
    ),
    'conditions' => array(
        'Agenda.event_id' => $event_id
    )
));

Sadece var $actsAs = array('Containable'); (tüm modeller için containable davranış erişilebilir istiyorsanız veya app_model.php konumunda yer alır olarak) modelin üstünde olmasını sağlamak, bu kod parçacığını tamamlamak için