У меня есть следующая структура модели:
Модели:
Первые три были созданы при первоначальной настройке приложения, после чего группы добавлялись через скрипт bake.
Модельные ассоциации:
Я пытаюсь получить данные в модели приложения, но у меня возникли некоторые проблемы. Я не могу добраться до стола группы. Мне постоянно говорят, что колонки, которую я ищу, не существует. Мой запрос:
$options = array(
'fields' => array(
'Application.applicant_id',
'Application.opening_id',
'Application.value_1',
'Application.date',
'Applicant.first_names',
'Applicant.surname',
'Applicant.gender',
'Applicant.id_number',
'Opening.title',
'Group.group_xs',
'Group.group_name'
),
'recursive' => -1,
'contain' => array(
'Applicant',
'Opening.Group',
),
'conditions' => array(
'Applicant.id' => $applicant_id,
'Opening.id' => $opening_id
)
);
$result = $this->find('all', $options);
Сообщение об ошибке:
Column not found: 1054 Unknown column 'Group.group_xs' in 'field list'
Я перепробовал так много разных вариантов, это даже не смешно. Я пробовал как с, так и без ‘recursive’, с ‘recursive’ => -1, 0 и 1. Я также попробовал нижеприведенные варианты ключа ‘содержать’, среди многих других.
'contain' => array(
'Applicant',
'Opening' =>array('Group')
),
'contain' => array(
'Applicant',
'Opening',
'Group'
),
'contain' => array(
'Group'
),
Я загружаю поведение Containable вверху моей модели приложения следующим образом:
public $actsAs = array('Containable' => array('recursive' => true,'autofields' => true));
Может кто-нибудь, пожалуйста, помогите. Что здесь происходит?
Я думаю, что содержимое может работать только на «has» -отношениях, а не на «ownTo» -отношениях.
Попробуйте использовать объединяющиеся таблицы https://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables
Других решений пока нет …