Содержимое не может присоединиться к отношениям ownTo, когда в CakePHP 1.3.4 используются «поля» - PullRequest
0 голосов
/ 05 октября 2010

(CakePHP версии 1.3.4)

У меня есть следующая связь между моделью контакта с учетной записью и тестовыми моделями:

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

Но как только введены «поля», ассоциация ownTo с разрывами аккаунта введена, но связь hasMany с Test остается в порядке:

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

Похоже, у кого-нибудь еще есть эта проблема?

1 Ответ

0 голосов
/ 21 октября 2010

Да, у меня точно такая же проблема.У меня есть отношение Сотрудник, принадлежащий к адресу, и

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

(где Address.full_name - виртуальное поле).Без предоставленного списка полей это работает.Может быть, подать отчет об ошибке?

...