CakePHP 1.3 nasıl ilişkili (belongsTo) Model koşullarını eklerim?

0 Cevap php

Ben de benzer sorular gördük, ama onların cevapları benim için çalışıyor görünmüyor. Gerçekten basit olması gerektiği gibi bu görünüyor, bu yüzden soruyorum için oldukça aptal hissediyorum.

Ben Preappform adında bir modeli var (Preappform için belongsTo var) hasMany Ajan modelleri. Ajan modeli karma içeren bir alanı vardır. Ben bir Preappform aldığınızda, otomatik olarak bana uygun yabancı anahtar ilgili herhangi bir Ajanlar geri verir, ama ben kimin Agent.hash alan bir verilen koşula uyan sadece bu içeren Acenteleri listesini sınırlamak istiyorum.

Burada geçerli kod:

models/agent.php

class Agent extends AppModel {
    var $name = "Agent"; // Singular for instances. 
    var $belongsTo = array('Preappform');
}

models/preappform.php

class Preappform extends AppModel {
    var $name = "Preappform";
    var $hasMany = array('Agent'); 
    /* snip, some validation stuff */
}

In the controller... (following the example of others)

// $id = 18
// $hash is set to false, or a nonexistent value. 

$the_form = $this->Preappform->find('first', 
    array(
        'conditions' => array('Preappform.id' => $id), 
        'contain' => array('Agent' => array('conditions' => array('Agent.hash' => $hash))) 
    )    
); 

The result:

Arrray
(
    [Preappform] => Array
        (
            [id] => 18
            [created] => 2010-12-03 08:56:12
            [modified] => 2010-12-03 08:56:12
            [completed] => 0
            /* ... */
        )


    [Agent] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [preappform_id] => 18
                    [hash] => f312d4b401fecc8ce0f8dca6eb7c1ca6ad9f5956
                )

            [1] => Array
                (
                    [id] => 2
                    [preappform_id] => 18
                    [hash] => f312d4b401fecc8ce0f8dca6eb7c1ca6ad9f5957
                )

        )

)

Ben çeşitli sürümleri ile "içeriyor" çeviriyorlardı ve Preappform Modeli "özyinelemeli" için farklı değerler, ancak filtresi mevcut Ajanlar gözükmüyor.

Ben o kadar basit olacağını düşündüm

$the_form = $this->Preappform->find(
    'first', 
    array('conditions' => array(
        'Preappform.id'=> $id, 
        'Agent.hash' => $hash
        ) 
    )
);

Error: ... ama bu her zaman bir "Ajan ... Bilinmeyen sütun" verir.

How can I apply conditions to filter the Agents returned with my Preappform model?

0 Cevap