0

(CakePHP 版本 1.3.4)

我在 Contact 模型与 Account 和 Test 模型之间有以下关联:

class Contact extends AppModel {
    var $name = 'Contact';

    var $actsAs = array('Containable');

    var $hasMany = array(
        'Test' => array(
            'className' => 'Test',
            'foreignKey' => 'contact_id',
            'dependent' => false
        )
    );

    var $belongsTo = array(
        'Account' => array(
            'className' => 'Account',
            'foreignKey' => 'account_id',                            
            'dependent' => false
        )
    );
}

以下查询可以正常工作:

$contact = $this->Contact->find('first', array(
    'contain' => array(
        'Account', 'Test'
    ),

    'conditions' => array(
        'Contact.id' => $contactId
    )
));

但是,一旦引入“字段”,与 Account 关联的 belongsTo 关联就会中断,但与 Test 的 hasMany 关联仍然很好:

$contact = $this->Contact->find('first', array(
    'contain' => array(
        'Account', 'Test'
    ),

    'conditions' => array(
        'Contact.id' => $contactId
    ),

    'fields' => array(
        'Contact.id', 'Contact.first_name', 'Contact.last_name', 'Contact.account_id'    
    )
));

其他人似乎有这个问题吗?

4

1 回答 1

0

是的,我遇到了完全相同的问题。我有一个 Employee belongsTo Adress 关系,并且

$this->dataout = $this->Employee->find('all',array(
        'contain' => array('Address.full_name'),
        'fields' => array('Employee.id','Employee.address_id')
    ));

(哪里Address.full_name是虚拟字段)。如果没有提供字段列表,它可以工作。也许提交错误报告?

于 2010-10-21T12:57:02.063 回答